名前付き後方参照: \k<name>

名前付き後方参照は、以前の[名前付きキャプチャグループ]の一致部分を参照し、そのグループと同じテキストに一致します。名前なしキャプチャグループの場合は、通常の後方参照構文を使用する必要があります。

構文

regex
\k<name>

引数

name

グループの名前です。有効な識別子であり、存在する名前付きキャプチャグループを参照する必要があります。

解説

名前付き後方参照は、通常の後方参照とよく似ています。キャプチャグループによって照合されたテキストを参照し、同じテキストに一致します。異なる点は、キャプチャグループを番号ではなく名前で参照することです。これにより、正規表現がより読み取りやすくなり、 リファクタリングや保守が簡単になります。

Unicode 非対応モードでは、正規表現が少なくとも 1 つの名前付きキャプチャグループを格納している場合にのみ、シーケンス \k は名前付き後方参照を開始します。それ以外の場合、これは ID エスケープであり、リテラル文字 `k`` と同じです。これはウェブの互換性のための非推奨構文としてのみ認められており、頼ってはいけません。

js
/\k/.test("k"); // true

引用符のペアリング

以下の関数は、文字列中の title='xxx'title="xxx" のパターンと一致します。 引用符が確実に一致するように、後方参照を使用して最初の引用符を参照します。 2 つ目のキャプチャグループ ([2]) にアクセスすると、一致した引用符の間の文字列を返します。

js
function parseTitle(metastring) {
  return metastring.match(/title=(?<quote>["'])(.*?)\k<quote>/)[2];
}

parseTitle('title="foo"'); // 'foo'
parseTitle("title='foo' lang='en'"); // 'foo'
parseTitle('title="Named capturing groups\' advantages"'); // "Named capturing groups' advantages"

仕様書

Specification
ECMAScript Language Specification
# prod-AtomEscape

ブラウザーの互換性

BCD tables only load in the browser

関連情報