Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
キャプチャグループは、サブパターンをグループ化し、グループ全体に数量詞を適用したり、グループ内で論理和を使用したりすることができます。サブパターンの一致に関する情報を記憶しているので、後方参照で参照したり、照合結果からその情報にアクセスしたりすることができます。
サブパターンの照合結果が必要ない場合は、代わりに非キャプチャグループを使用することで、パフォーマンスが向上し、リファクタリングの危険を避けることができます。
正規表現リテラルで使用する何かのもの、例えば論理和などから構成されるパターンです。
キャプチャグループは JavaScript の式におけるグループ化演算子のような役割を果たし、サブパターンを単一のアトムとして使用できるようにします。
キャプチャグループには、開始括弧の順番で番号が振られます。最初のキャプチャグループは 1、2 つ目は 2、といった具合に番号が振られます。名前付きキャプチャグループもキャプチャグループであり、他の(名前のない)キャプチャグループと一緒に番号が付けられます。キャプチャグループの一致に関する情報には、以下のようにしてアクセスできます。
メモ: exec() の結果の配列でも、キャプチャグループは 1、2 などの番号でアクセスされますが、これは要素 0`` が一致するもの全体であるためです。\0` は後方参照ではなく、NUL 文字の文字エスケープです。
正規表現コード内のキャプチャグループは、その結果と一対一に対応します。キャプチャグループが一致しない場合(例えば、それが論理和の一致しない選択肢に属する場合)、対応する結果は未定義です。
キャプチャグループは数量化できます。この場合、このグループに対応する一致情報は、そのグループで最後に一致したものとなります。
キャプチャグループは、先読みおよび後読みアサーションで使用できます。後読みアサーションはアトムを逆方向に一致させるので、 このグループに対応する最終的な一致は文字列の左端に現れるものになります。ただし、一致するグループのインデックスは、正規表現ソース内の相対位置に対応します。
キャプチャグループは入れ子にすることができ、その場合、開き括弧によって順序付けされるため、外側のグループが最初に番号付けされ、次に内側のグループが番号付けされます。入れ子になったグループが数量詞によって繰り返される場合、そのグループが一致するたびにサブグループの結果はすべて上書きされ、場合によっては undefined になります。
上の例では、外側のグループは 3 回一致します。
2 回目の一致で得られた "bbb" の結果は保存されません。3 つ目の一致で undefined で上書きされるからです。
d フラグを用いることで、入力文字列中の各キャプチャグループの開始と終わりのインデックスを取得することができます。これは、exec() が返す配列に indices プロパティを作成します。
オプションでキャプチャグループに名前を指定することができ、グループの位置やインデックス関連の落とし穴を避けるのに役立ちます。詳細は、名前付きキャプチャグループを参照してください。
括弧は、異なる正規表現構文において他の目的もあります。例えば、先読みアサーションや後読みアサーションも括弧で囲みます。これらの構文はすべて ? で始まり、? は ( の直後には置くことができない数量詞なので、曖昧さにはつながりません。
次の例は YYYY-MM-DD という形式の日付に一致します。
以下の関数は文字列中の title='xxx' と title="xxx" のパターンを照合します。引用符が確実に一致するように、後方参照を使用して最初の引用符を参照します。2 つ目のキャプチャグループ ([2]) にアクセスすると、一致する引用符の間の文字列を返します。
| ECMAScript® 2027 Language Specification # prod-Atom |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025年7月22日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.