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
/(?<name>\w+) (?<name>\w+)/;
Gültige Fälle
/(?<firstName>\w+) (?<lastName>\w+)/;
/(?<year>\d{4})-\d{2}|\d{2}-(?<year>\d{4})/;