测试字符串中出现反斜杠时,JavaScript RegEx匹配错误

JavaScript RegEx match wrong when backslash in tested string

本文关键字:JavaScript RegEx 错误 字符串 测试      更新时间:2023-09-26

我正在尝试用regex 匹配并突出显示源文件中的任何字符串

/(["'])([^'1]+?)(?:'1)/g

大多数情况下,它做得很好,但当测试字符串具有ie.时

cout << this->name << "(" << this->x << "," << this->y << ") r=" << this->distance() << "'n";

它断开并高亮显示(,<< this->distance() <<,而不是像它应该的那样高亮显示(,'n

我现在已经得出结论,是反斜杠(转义符)打断了高亮显示,因为用endl再次替换'n会产生所需的结果。

为什么会出现这种情况,以及我如何才能使突出显示起作用和想要的效果?

您需要使用负前瞻来匹配以下字符("'后面的字符)。

(["'])(?:''.|(?!'1).)*'1

演示