ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript 正規表現で複数のグループをキャプチャするにはどうすればよいですか?

JavaScript 正規表現で複数のグループをキャプチャするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-11 08:30:031041ブラウズ

How to Capture Multiple Groups in JavaScript Regular Expressions?

JavaScript 正規表現ですべてのキャプチャにアクセスする

問題は、JavaScript 正規表現で複数のグループをキャプチャしようとすると発生します。キャプチャは保持されます。

次の例を考えてみましょう:

"foo bar baz".match(/^(\s*\w+)+$/)

["foo", "bar", "baz"] のようなすべての一致を返す代わりに、["baz" のみを返します。 」]。この現象は、キャプチャ グループが繰り返されると前のキャプチャが上書きされるために発生します。

これを解決するには、別のアプローチを検討してください:

  • 区切り文字で分割: 可能であれば、文字列を分割します。
  • g フラグ付き正規表現: g フラグ付きの正規表現を使用して、すべての一致を反復処理します。これは、繰り返しキャプチャされるグループとまったく同じではない可能性があることに注意してください。
  • マルチレベル マッチング: 複数の正規表現一致を実行して特定のパターンをキャプチャし、それらをさらに分割または処理します。

たとえば、< で囲まれた一連の単語をキャプチャするには、 > ; で分割して、次の例を考えてみましょう:

var text = "a;b;;g;h;i;;j;k;";

var r = /<(\w+(;\w+)*)>/g;

var match;
while ((match = r.exec(text)) != null) {
  print(match[1].split(";"));
}

この正規表現は、キャプチャされたシーケンスを個々の単語に分割します。

参照:

  • [正規表現に関する情報: 繰り返しグループとキャプチャ グループ](https://www. Regular-expressions.info/repeat-a-capturing-group-vs-capturing-a-repeat-group)

以上がJavaScript 正規表現で複数のグループをキャプチャするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。