SyntaxError: invalid regexp group
Die JavaScript-Ausnahme "invalid regexp group" tritt auf, wenn die Sequenz (?
keine gültige Gruppensyntax beginnt. Anerkannte Gruppensyntaxen, die mit (?
beginnen, sind:
(?:
für nicht-erfassende Gruppen(?=
für positives Lookahead(?!
für negatives Lookahead(?<=
für positives Lookbehind(?<!
für negatives Lookbehind(?<
für benannte Erfassungsgruppen(?-i:
,(?i:
,(?m:
,(?ims-:
, etc. für Modifikatoren
(?
gefolgt von einem anderen Zeichen würde diesen Fehler verursachen.
Nachricht
SyntaxError: Invalid regular expression: /(?1)/: Invalid group (V8-based) SyntaxError: invalid regexp group (Firefox) SyntaxError: Invalid regular expression: unrecognized character after (? (Safari)
Fehlertyp
Was ist schiefgelaufen?
?
ist kein Atom, daher ergibt es keinen Sinn, dass es am Anfang einer Erfassungsgruppe steht (?
ist ein Quantifizierer und sollte nach einem Atom platziert werden). Vielleicht möchten Sie das ?
-Zeichen wörtlich erfassen, in welchem Fall Sie es mit einem Backslash (\?
) escapen sollten. Vielleicht erinnern Sie sich an die Regex-Syntax falsch und möchten eine der oben aufgeführten anerkannten Gruppensyntaxen verwenden. Vielleicht nutzen Sie ein Feature, das von der aktuellen JavaScript-Engine nicht unterstützt wird.
Beispiele
Ungültige Fälle
/Hello(?|!)/;
// This is Perl syntax
/(?[\p{Thai}&\p{Digit}])/;
Gültige Fälle
/Hello(\?|!)/;
// This is JavaScript syntax for character set operations
/[\p{Thai}&&\p{Digit}]/v;