JavaScript 正規表現ですべてのキャプチャにアクセスする
問題は、JavaScript 正規表現で複数のグループをキャプチャしようとすると発生します。キャプチャは保持されます。
次の例を考えてみましょう:
"foo bar baz".match(/^(\s*\w+)+$/)
["foo", "bar", "baz"] のようなすべての一致を返す代わりに、["baz" のみを返します。 」]。この現象は、キャプチャ グループが繰り返されると前のキャプチャが上書きされるために発生します。
これを解決するには、別のアプローチを検討してください:
たとえば、< で囲まれた一連の単語をキャプチャするには、 > ; で分割して、次の例を考えてみましょう:
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 サイトの他の関連記事を参照してください。