【Node.js24.x】RegExp::$2プロパティの使い方
$2プロパティの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
$2プロパティは、Node.js環境において、正規表現のマッチング操作によって捕捉された2番目のキャプチャグループにマッチした文字列を保持するプロパティです。このプロパティは、グローバルなRegExpオブジェクトに直接関連付けられた静的プロパティであり、RegExp.$2のようにアクセスして利用します。
正規表現を使用し、String.prototype.match()メソッドやRegExp.prototype.exec()メソッドなどのマッチング操作が実行されると、その結果に基づいて$2プロパティの値が自動的に更新されます。正規表現パターン内で、括弧()によって定義された部分がキャプチャグループとして扱われ、$2は2番目のキャプチャグループが実際にマッチした文字列を格納します。
例えば、/(cat)(dog)/.exec("catdog")のようなマッチングが行われた後には、RegExp.$1には"cat"が、そしてRegExp.$2には"dog"がそれぞれ設定されます。このメカニズムにより、複雑なテキストの中から特定の情報を効率的に抽出することが可能になります。
$2プロパティの他にも、$1から$9までの同様のプロパティが存在し、それぞれ対応するキャプチャグループのマッチ結果を保持します。これらのプロパティは、直前の正規表現マッチングの結果にのみ有効であり、新たなマッチング操作が実行されるとその結果によって値が上書きされる点に注意が必要です。したがって、特定のキャプチャグループの値を利用する際は、関連するマッチング操作の直後にアクセスすることが推奨されます。この機能は、文字列処理において非常に強力なツールとして活用されます。
構文(syntax)
1const text = "Node.js (version 24) is awesome!"; 2const pattern = /\((\w+)\s+(\d+)\)/; // 1番目のキャプチャグループ: バージョン文字列, 2番目のキャプチャグループ: バージョン番号 3 4pattern.exec(text); // 正規表現のマッチングを実行 5 6console.log(RegExp.$2); // 2番目のキャプチャグループにマッチした部分文字列
引数(parameters)
引数なし
引数はありません
戻り値(return)
string | undefined
正規表現によるマッチングで、2番目にキャプチャされたグループにマッチした部分文字列、またはマッチしなかった場合は undefined です。