JavaScript 正規表現での任意のグループのキャプチャ
JavaScript 正規表現でグループのキャプチャを使用する場合は、制限を理解することが重要です。デフォルトでは、グループがネストされている場合でも、繰り返しグループの最後のキャプチャのみが保持されます。
例: ネストされたキャプチャ グループ
次の正規表現を考えてみましょう。
/^(\s*\w ) $/
期待値出力:
["foo bar baz", "foo", " bar", " baz"]
実際の出力:
["foo bar baz", " 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(";")); } // Output: // ["c", "d", "e", "f"] // ["xx", "yy", "zz"]
この例では、ネストされたグループはグループ 1 としてキャプチャされ、セミコロン区切り文字で分割されます。
関連する質問
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3