文字列を分割するための正規表現: 引用符内のスペースを無視する
文字列分割用のスペースが単一または二重で囲まれている場合、文字列を分割するためのスペースを識別するのが困難になることがあります。引用。これに対処するには、次の正規表現を検討してください:
[^\s"']+|\"([^\"]*)"|'([^']*)'
この式は、文字列を 2 種類のパターンに分割します:
Java 実装:
次の Java コードは、この正規表現を使用して、文字列:
List<String> matchList = new ArrayList<>(); Pattern regex = Pattern.compile("[^\s\"']+|\"([^\"]*)"|'([^']*)'"); Matcher regexMatcher = regex.matcher(subjectString); while (regexMatcher.find()) { if (regexMatcher.group(1) != null) { matchList.add(regexMatcher.group(1)); // Double-quoted string } else if (regexMatcher.group(2) != null) { matchList.add(regexMatcher.group(2)); // Single-quoted string } else { matchList.add(regexMatcher.group()); // Unquoted word } }
より単純オプション:
返されたリストで引用符を維持できる場合は、コードのより単純なバージョンが可能です:
List<String> matchList = new ArrayList<>(); Pattern regex = Pattern.compile("[^\s\"']+|\"[^\"]*\"|'[^']*'"); Matcher regexMatcher = regex.matcher(subjectString); while (regexMatcher.find()) { matchList.add(regexMatcher.group()); }
このアプローチはそれほど複雑ではありませんが、返されたリストに引用符が含まれていますリスト要素。
以上が正規表現を使用して引用符内のスペースを含む文字列を分割する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。