Benannte Rückreferenz: \k<name>

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Eine benannte Rückreferenz bezieht sich auf die Teilübereinstimmung einer vorherigen benannten Erfassungsgruppe und stimmt mit demselben Text wie diese Gruppe überein. Bei unbenannten Erfassungsgruppen müssen Sie die normale Rückreferenz Syntax verwenden.

Syntax

regex
\k<name>

Parameter

name

Der Name der Gruppe. Muss ein gültiger Bezeichner sein und sich auf eine existierende benannte Erfassungsgruppe beziehen.

Beschreibung

Benannte Rückreferenzen sind der normalen Rückreferenz sehr ähnlich: Sie bezieht sich auf den Text, der von einer Erfassungsgruppe erfasst wurde, und stimmt mit demselben Text überein. Der Unterschied besteht darin, dass Sie sich auf die Erfassungsgruppe nach ihrem Namen statt nach ihrer Nummer beziehen. Dies macht den regulären Ausdruck lesbarer und einfacher zu überarbeiten und zu pflegen.

Im Unicode-unbewussten Modus startet die Sequenz \k nur dann eine benannte Rückreferenz, wenn der RegEx mindestens eine benannte Erfassungsgruppe enthält. Andernfalls ist es ein Identity Escape und entspricht dem literalen Zeichen k. Dies ist eine veraltete Syntax für Web-Kompatibilität und sollte nicht verwendet werden.

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

Beispiele

Paarweise Anführungszeichen

Die folgende Funktion sucht nach den Mustern title='xxx' und title="xxx" in einem String. Um sicherzustellen, dass die Anführungszeichen übereinstimmen, verwenden wir eine Rückreferenz, um auf das erste Anführungszeichen zu verweisen. Der Zugriff auf die zweite Erfassungsgruppe ([2]) gibt den String zwischen den passenden Anführungszeichen zurück:

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"

Spezifikationen

Specification
ECMAScript Language Specification
# prod-AtomEscape

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch