【Node.js24.x】RegExp::$5プロパティの使い方
$5プロパティの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
$5プロパティは、最後に成功した正規表現のマッチング操作において、5番目のキャプチャグループに一致した部分文字列を保持するプロパティです。このプロパティは、RegExpクラスに直接アクセスする静的なプロパティであり、特定の正規表現インスタンスではなく、グローバルな正規表現の状態に関連付けられています。
ある文字列に対して正規表現を適用し、その正規表現に複数のキャプチャグループ(丸括弧()で囲まれた部分)が含まれていて、マッチングが成功した場合に、$5プロパティにはそのうちの5番目のキャプチャグループに一致したテキストが自動的に格納されます。
例えば、"Alpha-Beta-Gamma-Delta-Epsilon-Zeta"という文字列に対して、-で区切られた単語をキャプチャするような正規表現/(\w+)-(\w+)-(\w+)-(\w+)-(\w+)-(\w+)/を適用し、RegExp.prototype.exec()メソッドが実行されたとします。このマッチングが成功した場合、$1プロパティには"Alpha"、そして$5プロパティには"Epsilon"が格納されます。
このプロパティは、正規表現が文字列内で特定のパターンを見つけ出した後に、その部分的な情報に素早くアクセスしたい場合に便利です。しかし、このRegExp.$n形式のプロパティは、グローバルな正規表現の状態に依存するため、複数の正規表現処理が並行して行われるような複雑なプログラムでは、予期せぬ結果を引き起こす可能性があります。そのため、現代のNode.js開発では、RegExp.prototype.exec()メソッドやString.prototype.match()メソッドが返す配列の結果を直接利用する方が、より明確で安全な方法として推奨されています。
構文(syntax)
1const text = "alpha beta gamma delta epsilon zeta"; 2const pattern = /(\w+)\s(\w+)\s(\w+)\s(\w+)\s(\w+)/; 3pattern.exec(text); 4console.log(RegExp.$5);
引数(parameters)
引数なし
引数はありません
戻り値(return)
string
RegExp.prototype.$5 プロパティは、正規表現の検索において5番目のキャプチャグループにマッチした部分文字列を返します。