SyntaxError: doppelter Name der Erfassungsgruppe im regulären Ausdruck

Die JavaScript-Ausnahme "doppelter Name der Erfassungsgruppe im regulären Ausdruck" tritt auf, wenn ein regulärer Ausdruck zwei oder mehr benannte Erfassungsgruppen mit demselben Namen enthält und diese Erfassungsgruppen gleichzeitig übereinstimmen könnten.

Nachricht

SyntaxError: Invalid regular expression: /(?<a>)(?<a>)/: Duplicate capture group name (V8-based)
SyntaxError: duplicate capture group name in regular expression (Firefox)
SyntaxError: Invalid regular expression: duplicate group specifier name (Safari)

Fehlertyp

Was ist schiefgelaufen?

Alle benannten Erfassungsgruppen in einem regulären Ausdrucksmuster müssen eindeutige Namen haben. Eine neuere Funktion erlaubt es, dass benannte Erfassungsgruppen Namen teilen, solange sie zu verschiedenen Disjunktionsalternativen gehören und nicht gleichzeitig übereinstimmen können (siehe Browser-Kompatibilität dafür). Es bleibt jedoch ein Fehler, wenn die benannten Erfassungsgruppen mit demselben Namen zur gleichen Zeit übereinstimmen könnten, da dies andere Funktionen wie benannte Rückverweise mehrdeutig machen würde.

Beispiele

Ungültige Fälle

js
/(?<name>\w+) (?<name>\w+)/;

Gültige Fälle

js
/(?<firstName>\w+) (?<lastName>\w+)/;
/(?<year>\d{4})-\d{2}|\d{2}-(?<year>\d{4})/;

Siehe auch