ホームページ >ウェブフロントエンド >jsチュートリアル >繰り返しによって最後の一致のみが保持される場合、JavaScript 正規表現で複数のグループをどのようにキャプチャできるでしょうか?
JavaScript 正規表現での複数のグループのキャプチャ
JavaScript で正規表現を使用する場合、文字列内の一致の複数のグループをキャプチャできます。 。ただし、キャプチャおよび取得できるグループの数には制限があります。
次の JavaScript 正規表現を考えてみましょう:
"foo bar baz".match(/^(\s*\w+)+$/)
この正規表現は、全体を含む配列を返すことが期待されるかもしれません。文字列 "foo bar baz" と個々の単語:
["foo bar baz", "foo", " bar", " baz"]
ただし、正規表現は実際には最後の単語のみを返します。キャプチャされた一致:
["foo bar baz", " baz"]
この動作は、ほとんどの正規表現では、繰り返されたキャプチャ グループの最後のキャプチャのみが保持されるために発生します。 JavaScript では、キャプチャ グループを繰り返すと、一致ごとに指定された数の文字列のみをキャプチャできます。
この制限を克服するには、いくつかのオプションがあります。
例:
文字列と一致する場合<一言;ここに>マルチレベルのマッチングを使用したテキスト内:
var text = "a;b;<c;d;e;f>;g;h;i;<no no no>;j;k;<xx;yy;zz>;"; var r = /<(\w+(;\w+)*)>/g; var match; while ((match = r.exec(text)) != null) { print(match[1].split(";")); }
このアプローチでは、2 つのレベルのマッチングを使用して文字列から個々の単語を抽出します。
以上が繰り返しによって最後の一致のみが保持される場合、JavaScript 正規表現で複数のグループをどのようにキャプチャできるでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。