Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

Experiment: Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.

Rückverweis: \1, \2

BaselineWidely available

EinRückverweis bezieht sich auf den Teilstring einer vorherigenerfassenden Gruppe und stimmt mit demselben Text wie diese Gruppe überein. Fürbenannte erfassende Gruppen bevorzugen Sie möglicherweise die Syntax fürbenannte Rückverweise.

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 Rückverweis ist eine Möglichkeit, denselben Text zu matchen, der zuvor von einer erfassenden Gruppe gematcht wurde. Die Zählung 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 einZeichenescape für das NUL-Zeichen.

Bei case-unsensitiven Vergleichen kann der Rückverweis Text mit unterschiedlicher Groß- und Kleinschreibung im Vergleich zum Originaltext matchen.

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

Der Rückverweis muss sich auf eine existierende erfassende Gruppe beziehen. Wenn die angegebene Zahl größer ist als die Gesamtzahl der erfassenden Gruppen, wird ein Syntaxfehler ausgelöst.

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

Imunicode-unaware mode werden ungültige Rückverweise zu einerveralteten oktalen Escape-Sequenz. Dies ist eineveraltete Syntax für Web-Kompatibilität, 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 einerDisjunktion gehört) oder die Gruppe noch nicht gematcht wurde (zum Beispiel, weil sie rechts vom Rückverweis liegt), gelingt der Rückverweis 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 Mustertitle='xxx' undtitle="xxx" in einem String. Um sicherzustellen, dass die Anführungszeichen übereinstimmen, verwenden wir einen Rückverweis, um auf das erste Anführungszeichen zu verweisen. Der Zugriff auf die zweite erfassende Gruppe ([2]) gibt die Zeichenkette zwischen den übereinstimmenden Anführungszeichen zurück:

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 Wörter matchen

Die folgende Funktion findet doppelte Wörter in einem String (die normalerweise Tippfehler sind). Beachten Sie, dass es die\wZeichenklassenescape verwendet, die nur englische Buchstaben, aber keine akzentuierten Buchstaben oder andere Alphabete matched. Wenn Sie ein generischeres Matching wünschen, sollten Sie den String möglicherweise mit Leerzeichenaufteilen 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"); // undefinedfindDuplicates("Hello hello"); // 'Hello'findDuplicates("Hello hellos"); // undefined

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# prod-DecimalEscape

Browser-Kompatibilität

Siehe auch

MDN-Feedback-Box

Diese Seite wurde automatisch aus dem Englischen übersetzt.


[8]ページ先頭

©2009-2025 Movatter.jp