javascript - 无效的正则表达式组

标签 javascript regex

<分区>

我正在尝试使用 Javascript 创建以下正则表达式。

(?<!\\)(?:\\{2})*\\(?!\\)([5-9]|[1-9]\d)

但是,这样做会在控制台中出现无效组错误。

regExp = new RegExp("(?<!\\)(?:\\{2})*\\(?!\\)([5-9]|[1-9]\d)", "gi");

我不明白问题到底出在哪里。感谢您的帮助。

谢谢

编辑:经过一些研究,我发现 Javascript 不支持回顾。

所以错误来自(?<!\\) . 请引用这个新问的问题,以找到完成相同工作的替代方法。 How to check for odd numbers of backslashes in a regex using Javascript?

最佳答案

如果您的表达式不是动态的,只需使用文字:

var regExp = /(?<!\\)(?:\\{2})*\\(?!\\)([5-9]|[1-9]\d)/gi;

问题是字符串中的转义序列 \\ 最终会在 regEx 中呈现 \ 字符,这反过来又会转义他们不应该转义的括号,导致未终止的组。

关于javascript - 无效的正则表达式组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50332826/

相关文章:

javascript - 带警报的快速正则表达式

Javascript按钮出现动画

javascript - jQuery Toggle 不适用于多个元素

javascript - ember-cli 在哪里放置图像

javascript - 在javascript中从剪贴板获取html

c++ - 正则表达式:在字符串和冒号之后提取 int

php - 为什么这个正则表达式不验证

java - 如何使用正则表达式选择文件路径

javascript - 如何判断 obj 是 jquery 还是普通 javascript

java - 使用正则表达式从字符串中获取不带扩展名的文件名