测试字符串中出现反斜杠时,JavaScript RegEx匹配错误
JavaScript RegEx match wrong when backslash in tested string
我正在尝试用regex 匹配并突出显示源文件中的任何字符串
/(["'])([^'1]+?)(?:'1)/g
大多数情况下,它做得很好,但当测试字符串具有ie.时
cout << this->name << "(" << this->x << "," << this->y << ") r=" << this->distance() << "'n";
它断开并高亮显示(
、,
和<< this->distance() <<
,而不是像它应该的那样高亮显示(
、,
和'n
。
我现在已经得出结论,是反斜杠(转义符)打断了高亮显示,因为用endl
再次替换'n
会产生所需的结果。
为什么会出现这种情况,以及我如何才能使突出显示起作用和想要的效果?
您需要使用负前瞻来匹配以下字符("
或'
后面的字符)。
(["'])(?:''.|(?!'1).)*'1
演示
相关文章:
- Javascript RegEx validator
- 包含圆括号的JavaScript Regex模式
- 要替换的Javascript Regex无法按预期工作
- Javascript/RegEx未验证HTML表单
- Isn't javascript regex lazy?
- javascript/regex忽略双引号中的分号
- 从javascript regex.exec分配多个变量
- JavaScript Regex 将单词替换为其第一个字母,除非在括号内
- JavaScript Regex(?i)选项中字符串大小写不敏感的部分不起作用
- JavaScript Regex,用于由特定字符串包围的数字和空格
- Javascript RegEx to XML Schema RegEx
- Javascript Regex Search
- Javascript Regex,在字符串中查找数字
- Javascript Regex选择每个非字母数字字符和空白
- Javascript Regex-删除未捕获的组
- Javascript-Regex,用于逗号分隔的字母数字
- Javascript Regex-从价格中抓取分隔符
- JavaScript:RegEx-不返回match1 match2等
- 将Javascript Regex结果转换为字符串(?)
- Javascript Regex替换HTML标记