【Node.js24.x】RegExp::$3プロパティの使い方
$3プロパティの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
$3プロパティは、JavaScriptのRegExpオブジェクトに属する静的なプロパティであり、正規表現によるマッチング操作の後に、3番目のキャプチャグループにマッチした部分文字列を保持するプロパティです。正規表現パターン内で括弧 () を使用して定義された部分をキャプチャグループと呼び、これによって全体のマッチ結果から特定のサブパターンを抽出することができます。
このプロパティは、RegExp.prototype.exec()メソッドやString.prototype.match()メソッドなどが呼び出され、正規表現のマッチングが成功した直後に自動的に更新されます。例えば、'apple banana cherry'.match(/(\w+)\s(\w+)\s(\w+)/) のようなマッチングが行われた場合、RegExp.$3には「cherry」という文字列が設定されます。
RegExp.$3を含むRegExp.$1からRegExp.$9までのプロパティは、グローバルな静的プロパティであるため、最後に成功した正規表現のマッチング結果に影響されます。これは、複数の正規表現を連続して使用する際や、並行処理を行う場合に、意図しない値が設定される可能性があることを意味します。そのため、現代のJavaScript開発では、String.prototype.match()メソッドやRegExp.prototype.exec()メソッドが返す結果オブジェクト(マッチオブジェクト)を利用することが一般的に推奨されます。結果オブジェクトは、マッチした文字列全体やキャプチャグループの内容を配列の要素やgroupsプロパティとして提供するため、より安全で明示的な方法でマッチング結果にアクセスできます。
構文(syntax)
1const text = "apple banana cherry"; 2const regex = /(\w+)\s(\w+)\s(\w+)/; 3text.match(regex); 4console.log(RegExp.$3);
引数(parameters)
引数なし
引数はありません
戻り値(return)
string
正規表現によるマッチングで、3番目にキャプチャされたグループ(括弧で囲まれた部分)の文字列を返します。