JavaScriptでの正規表現のプロパティとマッチング結果

JavaScriptでの正規表現のプロパティとマッチング結果

JavaScriptでの正規表現のプロパティとマッチング結果

JavaScriptでの正規表現のプロパティとマッチング結果

regexp.source

regexp.sourceは、正規表現オブジェクトに設定された正規表現パターンの文字列を返します。このプロパティは読み取り専用で、正規表現の内容を確認したい場合に便利です。

// 正規表現を作成
const regex = /hello\s(world)/i;
console.log(regex.source); // "hello\s(world)"

上記のコードでは、正規表現のパターンhello\s(world)がそのまま文字列として返されます。

regexp.lastIndex

regexp.lastIndexは、正規表現でマッチングを再開する位置を示すプロパティです。このプロパティは主にglobalフラグまたはstickyフラグを使用している場合に役立ちます。

// globalフラグ付きの正規表現
const regex = /world/g;
const str = "hello world world";

regex.test(str);
console.log(regex.lastIndex); // 11 (最初のマッチの次の位置)

regex.test(str);
console.log(regex.lastIndex); // 17 (次のマッチの次の位置)

この例では、lastIndexが更新され、次のマッチング位置を示します。

RegExp.$記号 (非推奨)

RegExp.$&, RegExp.$`, RegExp.$'などのプロパティは、最新のマッチング結果に基づいて情報を提供しますが、非推奨となっています。

const regex = /(hello)\s(world)/;
regex.test("hello world");
console.log(RegExp.$&); // "hello world" (マッチ全体)
console.log(RegExp.$`); // "" (マッチ前の文字列)
console.log(RegExp.$'); // "" (マッチ後の文字列)

これらのプロパティは非推奨のため、代替としてString.prototype.matchを使用することが推奨されます。

RegExp.$n (非推奨)

RegExp.$1, RegExp.$2などのプロパティは、正規表現のキャプチャグループに対応する値を提供しますが、これも非推奨です。

const regex = /(hello)\s(world)/;
regex.test("hello world");
console.log(RegExp.$1); // "hello" (最初のキャプチャグループ)
console.log(RegExp.$2); // "world" (2番目のキャプチャグループ)

非推奨であるため、execmatchの利用

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です