引用符で囲まれていないスペースを使用した文字列の分割
このコンテキストでは、スペースを使用して文字列をコンポーネントに分割する解決策を模索します。一重引用符または二重引用符で囲まれないでください。これは、慎重な正規表現の作成を必要とする微妙なタスクです。
効果的な解決策の 1 つは、次の 2 種類の要素をキャプチャする正規表現を構築することです:
これらの要素と一致させるには、次の正規表現を利用できます:
[^\s"']+|"([^"]*)"|'([^']*)'
この中でregex:
このソリューションを Java で実装すると、次のコードを使用できます。
Pattern regex = Pattern.compile("[^\s\"']+|\"([^\"]*)\"|'([^']*)'"); Matcher regexMatcher = regex.matcher(subjectString); List<String> matchList = new ArrayList<>(); while (regexMatcher.find()) { if (regexMatcher.group(1) != null) { // Double-quoted string without quotes matchList.add(regexMatcher.group(1)); } else if (regexMatcher.group(2) != null) { // Single-quoted string without quotes matchList.add(regexMatcher.group(2)); } else { // Unquoted word matchList.add(regexMatcher.group()); } }
このアプローチは、両方のタイプの要素を適切に捕捉し、特定の問題に対する堅牢なソリューションを提供します。 .
以上が引用符内のスペースを無視して文字列をスペースで分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。