Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【JavaScript ECMAScript】Named capturing group: (?<name>...)言語機能の使い方

Named capturing group: (?<name>...)言語機能の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

Named capturing group: (?<name>...)関数は、正規表現パターン内で特定のサブパターンに一致した文字列に名前を付け、その名前を使って後から簡単に参照できるようにする機能を提供します。従来の正規表現では、複数の部分文字列をキャプチャする際に、一致した順序を示す数値インデックス(例: $1, $2)でしかアクセスできませんでしたが、この名前付きキャプチャグループを用いることで、(?<year>\d{4}) のようにグループに明確な名前(例: year)を割り当てることが可能になります。

この機能は、特に複雑な正規表現を扱う際にコードの可読性を大幅に向上させます。例えば、YYYY-MM-DD のような日付パターンを解析する場合、/(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/ と定義することで、マッチング結果から result.groups.yearresult.groups.month のように、直感的かつ分かりやすい名前で各要素の値にアクセスできます。これにより、数値インデックスに頼る場合に生じやすい「どのインデックスが何を表しているのか」という混乱を防ぎ、コードの保守性も高まります。

JavaScriptにおいては、RegExp.prototype.exec() メソッドや String.prototype.match() メソッドで得られる結果オブジェクトの groups プロパティを介して、名前付きでキャプチャされた値にアクセスすることが可能です。この機能はECMAScript 2018 (ES9) で導入されたもので、より強力で分かりやすい正規表現の記述をサポートします。

公式リファレンス: Named capturing group: (?<name>...)

構文(syntax)

1/(?<name>pattern)/

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません

関連コンテンツ