ホームページ > Java > &#&チュートリアル > 正規表現を使用して引用符で囲まれたセクションを保持しながら文字列をスペースで分割するにはどうすればよいですか?

正規表現を使用して引用符で囲まれたセクションを保持しながら文字列をスペースで分割するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-15 13:22:15
オリジナル
376 人が閲覧しました

How to Split Strings by Spaces While Preserving Quoted Sections Using Regex?

正規表現で引用符で囲まれていない場合にスペースを使用して文字列を分割する

正規表現では、引用符で囲まれたセクション内にスペースを保持したまま、スペースを使用して文字列を分割することができます。これを実現する方法は次のとおりです。

引用符の前のスペースで分割する元の式 (?!") の問題に対処するには、次の正規表現を検討してください。

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

This式は 3 つをキャプチャしますパターン:

  1. 1 : 1 つ以上の非空白文字、非引用符と一致します。 characters.
  2. "(2*)": 二重引用符で囲まれた文字列と一致し、グループ内の引用符なしの文字列をキャプチャします。 1.
  3. '(3*)': 一重引用符で囲まれた文字列と一致し、グループ 2 の引用符なしの文字列をキャプチャします。

文字列を分割するには、次のような Java コードを使用できます。 this:

List<String> matchList = new ArrayList<>();
Pattern regex = Pattern.compile("[^\s\"']+|\"([^\"]*)\"|'([^']*)'");
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
    if (regexMatcher.group(1) != null) {
        // Add double-quoted string without the quotes
        matchList.add(regexMatcher.group(1));
    } else if (regexMatcher.group(2) != null) {
        // Add single-quoted string without the quotes
        matchList.add(regexMatcher.group(2));
    } else {
        // Add unquoted word
        matchList.add(regexMatcher.group());
    }
}
ログイン後にコピー

このコードは、引用符で囲まれた単語から引用符を取り除き、その中のスペースを保持して、文字列のリストを構築します。


  1. s"'
  2. "
  3. '

以上が正規表現を使用して引用符で囲まれたセクションを保持しながら文字列をスペースで分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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