Javascript:负向后查找的等效正则表达式?

标签 javascript regex

我想编写一个正则表达式来捕获字符串中的所有双引号 ",除了转义的双引号。

例如,下面的字符串将仅返回第一个引号:

"HELLO\"\"\"

但以下将返回 3 个匹配项:

"HELLO\"\""\""

我使用了以下表达式,但由于在 JavaScript 中没有负向后查找,我陷入了困境:

(?<!\\)"

我看过类似的问题,但大多数都提供了编程接口(interface)。我不想使用编程接口(interface),因为我使用的是 Ace 编辑器,解决我的问题的最简单方法是定义这个正则表达式。

我想没有通用的替代方案,因为我已经尝试了针对类似问题提出的替代方案,但没有一个完全符合我的情况。

感谢您的回答!

最佳答案

您可以使用此解决方法:

(^|[^\\])"

" 仅当前面有除 \ 或字符串开头 (^) 之外的任何字符时。

但要小心,这匹配两个字符:" 和前面的字符(除非在字符串开头的情况下)。换句话说,如果您不想替换例如,' 的所有这些 ",您需要:

theString.replace(/(^|[^\\])"/g, "$1'")

关于Javascript:负向后查找的等效正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26550021/

相关文章:

Python - 一种学习和检测文本模式的方法?

Java 帮助使用模式操作 anchor

javascript - 通过使用一些基于网络的代码(javascript、jquery、html 等)绘制 xy 坐标来创建零售店 map

javascript - 为谷歌地图上的每个位置设置位置标记

javascript - 如何使用JQuery正确获取跨域的xml

Objective-C:从字符串中去除 HTML 标签

java - 正则表达式可以独立运行,但不能在 Web 应用程序中运行

javascript - ReactJS - .map 函数内的 REST API 查询?

javascript - 正则表达式:将标题 =""添加到 <img> 标签,但如果 <img> 位于 &lt;script&gt; 标签之间,则不添加标题 0x104567910

长序列上的 C++ 正则表达式段错误