【Node.js24.x】RegExp::$1プロパティの使い方
$1プロパティの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
RegExp.$1プロパティは、JavaScriptにおいて、正規表現のマッチング操作によってキャプチャされた最初の部分文字列を保持する静的プロパティです。このプロパティは、直前に行われた正規表現のマッチング処理(例えば RegExp.prototype.exec() メソッド)で、括弧 () によって定義されたキャプチャグループのうち、一番最初のグループがキャプチャした内容を文字列として格納します。キャプチャグループとは、正規表現内で特定のパターンを括弧で囲むことで、そのパターンにマッチした部分を後から個別に参照できるようにする機能です。
具体的には、ある文字列に対して正規表現を適用し、その正規表現に一つ以上のキャプチャグループが含まれていた場合、マッチングが成功すると、RegExp.$1 には最初のキャプチャグループに対応する部分が自動的にセットされます。マッチングが成功しなかった場合や、最初のキャプチャグループが存在しない場合は、空文字列が保持されます。
このプロパティは $2, $3, ..., $9 といった形式で、最大9番目までのキャプチャグループに対応するプロパティが存在します。これらはすべて、直前の正規表現マッチング操作の結果に基づいて更新されるグローバルなプロパティであり、異なる正規表現操作が行われるたびにその値が上書きされる点に注意が必要です。そのため、特に複数の正規表現処理を連続して行う場合や、非同期処理環境で使用する場合は、意図しない値が参照される可能性があります。モダンなJavaScriptでは、RegExp.prototype.exec() メソッドの戻り値など、より明示的な方法が推奨されます。
構文(syntax)
1const nameString = "Firstname Lastname"; 2/(\w+)\s(\w+)/.test(nameString); 3console.log(RegExp.$1);
引数(parameters)
引数なし
引数はありません
戻り値(return)
string
正規表現によるマッチングで、キャプチャグループ1でキャプチャされた文字列を返します。