node.js - 搜索时跳过奇数个前面的符号

标签 node.js regex

问题

使用RegEx,如何查找第一个'的索引前面没有奇数 \

<小时/>

详细信息

在我的代码中,我可以检测 PostgreSQL 字符串的开头,该字符串以 ' 开头。 ,我需要一个正则表达式来查找后面的字符串中的有效结尾,并匹配 ' ,或者告诉我何时没有有效的闭包,即字符串无效。

我遇到的问题是如何跳过 ' 时的特殊情况前面有奇数 \ ,即要跳过以下情况:\' , \\\' , \\\\\'

是否可以在正则表达式中跳过此类特殊情况,并给我闭包索引,或者 -1(如果不存在)?

最佳答案

这应该是一个有效的正则表达式,仅匹配前面有偶数个 \ 的第一个 ':

(?<!\\)(?:\\\\)*(?!\\)\'

但我不知道是否支持负前瞻/后瞻。 我本质上是说:只匹配其他 \ 之前或之后的 \\ (不转义)。

<小时/>

编辑:@revo 让我注意到最后一部分是多余的,正确的正则表达式是:

(?<!\\)(?:\\\\)*'

关于node.js - 搜索时跳过奇数个前面的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56046843/

相关文章:

node.js - 如何在 sails.js 中省略 sails.sockets.broadcast 中的两个或多个套接字?

javascript - 使用自定义规则进行域名验证

regex - 在 Go 中获取正则表达式的解析树

javascript - 在Nodejs中重新分配变量时,存储旧变量的内存会释放吗?

javascript - 如何用 Promises 写这个?

node.js - 乱序处理后的"Resequencing"消息

javascript - 如何检查文本是否突出显示(跨浏览器)

javascript - 无法使用 nodejs 获取、写入和读取字体文件

python - 提取单引号之间的子字符串

java - 如何在 Java 中编写一个只允许数字 0-9 和 # 的正则表达式