【Node.js24.x】RegExp::$6プロパティの使い方
$6プロパティの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
$6プロパティは、最後に成功した正規表現のマッチ操作において、6番目の記憶グループ(キャプチャグループ)がマッチした部分文字列を保持するプロパティです。これはRegExpクラスの静的プロパティであり、RegExp.$6のように直接RegExpオブジェクトからアクセスして使用します。
正規表現において、特定のパターンを括弧()で囲むと、その括弧で囲まれた部分が「記憶グループ」として認識され、マッチした内容が個別に保存されます。RegExp.$1からRegExp.$9までのプロパティは、それぞれ正規表現パターン内で定義された1番目から9番目までの記憶グループにマッチした文字列を保持するために提供されています。したがって、$6プロパティは、正規表現パターンの中で6番目に現れる記憶グループが実際に捕らえた文字列を参照する際に利用されます。
このプロパティは、String.prototype.match()やRegExp.prototype.exec()のような正規表現によるマッチ操作が成功するたびに、その最新の結果に基づいて自動的に更新されます。例えば、複雑なログデータやURL文字列から複数の特定の部分(日付の年、月、日など)を同時に抽出し、それぞれを個別のデータとして利用したい場合に非常に役立ちます。マッチングが成功しなかった場合、または6番目の記憶グループが存在しないかマッチしなかった場合は、空文字列''が保持されます。このプロパティはグローバルな性質を持つため、新たな正規表現のマッチ操作が行われると、以前の値は上書きされてしまう点に注意が必要です。
構文(syntax)
1const regex = /(\d+)-(\d+)-(\d+)-(\d+)-(\d+)-(\d+)/; 2const str = "Date: 2023-10-27-09-30-15"; 3regex.test(str); 4console.log(RegExp.$6);
引数(parameters)
引数なし
引数はありません
戻り値(return)
string
RegExp.prototype.$6 は、正規表現マッチングでキャプチャされた6番目のグループに一致する文字列を返します。