[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Regular_expressions/Backreference [Back]  [Original]

Rckverweis: \1, \2 - JavaScript | MDN

Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.

View in English Always switch to English

Rckverweis: \1, \2

Baseline Weitgehend verfgbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Juli 2015 browserbergreifend verfgbar.

Ein Rckverweis bezieht sich auf den Teilstring einer vorherigen erfassenden Gruppe und stimmt mit demselben Text wie diese Gruppe berein. Fr benannte erfassende Gruppen bevorzugen Sie mglicherweise die Syntax fr benannte Rckverweise.

In diesem Artikel

Syntax

regex
\N

Hinweis: N ist kein literales Zeichen.

Parameter

N

Eine positive ganze Zahl, die sich auf die Nummer einer erfassenden Gruppe bezieht.

Beschreibung

Ein Rckverweis ist eine Mglichkeit, denselben Text zu matchen, der zuvor von einer erfassenden Gruppe gematcht wurde. Die Zhlung der erfassenden Gruppen beginnt bei 1, sodass das Ergebnis der ersten erfassenden Gruppe mit \1 referenziert werden kann, das der zweiten mit \2 usw. \0 ist ein Zeichenescape fr das NUL-Zeichen.

Bei case-unsensitiven Vergleichen kann der Rckverweis Text mit unterschiedlicher Gro- und Kleinschreibung im Vergleich zum Originaltext matchen.

js
/(b)\1/i.test("bB"); // true

Der Rckverweis muss sich auf eine existierende erfassende Gruppe beziehen. Wenn die angegebene Zahl grer ist als die Gesamtzahl der erfassenden Gruppen, wird ein Syntaxfehler ausgelst.

js
/(a)\2/u; // SyntaxError: Invalid regular expression: Invalid escape

Im unicode-unaware mode werden ungltige Rckverweise zu einer veralteten oktalen Escape-Sequenz. Dies ist eine veraltete Syntax fr Web-Kompatibilitt, auf die Sie sich nicht verlassen sollten.

js
/(a)\2/.test("a\x02"); // true

Wenn die referenzierte erfassende Gruppe nicht gematcht wird (zum Beispiel, weil sie zu einer nicht gematchten Alternative in einer Disjunktion gehrt) oder die Gruppe noch nicht gematcht wurde (zum Beispiel, weil sie rechts vom Rckverweis liegt), gelingt der Rckverweis immer (als ob er die leere Zeichenkette matcht).

js
/(?:a|(b))\1c/.test("ac"); // true
/\1(a)/.test("a"); // true

Beispiele

Zitatpaarung

Die folgende Funktion matched die Muster title='xxx' und title="xxx" in einem String. Um sicherzustellen, dass die Anfhrungszeichen bereinstimmen, verwenden wir einen Rckverweis, um auf das erste Anfhrungszeichen zu verweisen. Der Zugriff auf die zweite erfassende Gruppe ([2]) gibt die Zeichenkette zwischen den bereinstimmenden Anfhrungszeichen zurck:

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

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

Doppelte Wrter matchen

Die folgende Funktion findet doppelte Wrter in einem String (die normalerweise Tippfehler sind). Beachten Sie, dass es die \w Zeichenklassenescape verwendet, die nur englische Buchstaben, aber keine akzentuierten Buchstaben oder andere Alphabete matched. Wenn Sie ein generischeres Matching wnschen, sollten Sie den String mglicherweise mit Leerzeichen aufteilen und ber das resultierende Array iterieren.

js
function findDuplicates(text) {
  return text.match(/\b(\w+)\s+\1\b/i)?.[1];
}

findDuplicates("foo foo bar"); // 'foo'
findDuplicates("foo bar foo"); // undefined
findDuplicates("Hello hello"); // 'Hello'
findDuplicates("Hello hellos"); // undefined

Spezifikationen

Spezifikation
ECMAScript 2027 LanguageSpecification
# prod-DecimalEscape

Browser-Kompatibilitt

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page