ホームページ > Java > &#&チュートリアル > 正規表現を使用して引用符内のスペースを含む文字列を分割する方法

正規表現を使用して引用符内のスペースを含む文字列を分割する方法

Patricia Arquette
リリース: 2024-12-18 02:22:14
オリジナル
554 人が閲覧しました

How to Split Strings with Spaces Inside Quotes Using Regular Expressions?

文字列を分割するための正規表現: 引用符内のスペースを無視する

文字列分割用のスペースが単一または二重で囲まれている場合、文字列を分割するためのスペースを識別するのが困難になることがあります。引用。これに対処するには、次の正規表現を検討してください:

[^\s"']+|\"([^\"]*)"|'([^']*)'
ログイン後にコピー

この式は、文字列を 2 種類のパターンに分割します:

  • 引用符で囲まれていない単語: 任意のシーケンス最初のグループでキャプチャされた、スペースや引用符を含まない文字の集合。
  • 引用符付きstrings: 一重引用符または二重引用符で囲まれたシーケンス。中に引用符は含まれません。キャプチャ グループは、引用符自体を除いて、引用符内のテキストをキャプチャします。

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート