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

【Node.js24.x】RegExp::$9プロパティの使い方

$9プロパティの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

$9プロパティは、Node.jsのRegExpクラスに属し、グローバルなRegExpオブジェクトの静的プロパティとして、直前に実行された正規表現のマッチングにおいて、9番目のキャプチャグループに一致した部分文字列を保持するプロパティです。

正規表現では、丸括弧 () を使用して特定のパターンをグループ化し、これを「キャプチャグループ」と呼びます。テキストに対して正規表現が成功裏にマッチした場合、これらのキャプチャグループに一致する個々の部分文字列が記憶されます。RegExp.$1からRegExp.$9までのプロパティは、それぞれ1番目から9番目までのキャプチャグループの内容を提供し、$9はその9番目のグループに格納された情報を取り出す際に利用されます。例えば、「^(?:(\d{3})-(\d{4}))-(\d{4})$」のような正規表現で電話番号にマッチする場合、$1は最初の3桁の数字、$2は次の4桁の数字を保持し、$3は最後の4桁の数字を保持するといった具合に、括弧の出現順に値が割り当てられます。もし9つ目のキャプチャグループが存在し、それに値がマッチすれば、その部分文字列が$9に格納されます。

このプロパティは、正規表現のマッチングが成功した直後に自動的に更新されますが、RegExp.$9を含むRegExp.$nプロパティはグローバルな状態を参照するという点に注意が必要です。そのため、複数の正規表現処理が同時に、または連続して実行されるような状況では、意図しない値が設定される可能性があります。現代のJavaScript開発においては、正規表現インスタンスのexec()メソッドや文字列のmatch()メソッドが返す結果オブジェクトのインデックス(例: matchResult[9])を使用することが推奨されています。これは、グローバルな状態に依存せず、より明確で予測可能なコードを書くためです。$9プロパティは主に後方互換性のために残されており、新規のコードでは避けることが一般的です。

構文(syntax)

1const text = "apple banana cherry date elderberry fig grape huckleberry juniper kiwi";
2const regex = /(\w+)\s(\w+)\s(\w+)\s(\w+)\s(\w+)\s(\w+)\s(\w+)\s(\w+)\s(\w+)/;
3regex.exec(text);
4console.log(RegExp.$9);

引数(parameters)

引数なし

引数はありません

戻り値(return)

string

RegExp.$9 は、正規表現の検索において9番目にキャプチャされたグループにマッチした文字列を返します。

関連コンテンツ

関連プログラミング言語