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

【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番目にキャプチャされたグループ(括弧で囲まれた部分)の文字列を返します。

関連コンテンツ

関連プログラミング言語