SyntaxError: invalid regexp group

当序列 (? 未开始有效的组语法时,就会发生 JavaScript 异常“invalid regexp group”。以 (? 开头的识别组语法包括

(? 后跟任何其他字符都会导致此错误。

消息

SyntaxError: Invalid regular expression: /(?1)/: Invalid group (V8-based)
SyntaxError: invalid regexp group (Firefox)
SyntaxError: Invalid regular expression: unrecognized character after (? (Safari)

错误类型

哪里出错了?

? 不是 原子,因此它出现在 捕获组 的开头没有意义(?量词,应放在原子之后)。您可能希望匹配 ? 字符本身,在这种情况下,您应该用反斜杠 (\?) 对其进行转义。您可能记错了正则表达式语法,并且打算使用上面列出的已识别组语法之一。您可能正在使用当前 JavaScript 引擎不支持的功能。

示例

无效情况

js
/Hello(?|!)/;
// This is Perl syntax
/(?[\p{Thai}&\p{Digit}])/;

有效情况

js
/Hello(\?|!)/;
// This is JavaScript syntax for character set operations
/[\p{Thai}&&\p{Digit}]/v;

另请参阅