首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无效的正则表达式组

无效的正则表达式组
EN

Stack Overflow用户
提问于 2018-05-14 22:29:38
回答 1查看 677关注 0票数 1

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

代码语言:javascript
运行
复制
(?<!\\)(?:\\{2})*\\(?!\\)([5-9]|[1-9]\d)

但是,这样做会在控制台中显示无效的组错误。

代码语言:javascript
运行
复制
regExp = new RegExp("(?<!\\)(?:\\{2})*\\(?!\\)([5-9]|[1-9]\d)", "gi");

我不明白问题到底是从哪里来的。我很感谢你的帮助。

谢谢

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

所以错误来自于(?<!\\)。请参考这个新提出的问题,找到另一种方法来完成相同的工作。How to check for odd numbers of backslashes in a regex using Javascript?

EN

回答 1

Stack Overflow用户

发布于 2018-05-14 22:35:26

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

代码语言:javascript
运行
复制
var regExp = /(?<!\\)(?:\\{2})*\\(?!\\)([5-9]|[1-9]\d)/gi;

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50332826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档