例如,我可能有字符串
/zombie nimble zombie quick
Plants vs Zombies reference
我想匹配每个"e",但只能从短语";僵尸敏捷僵尸快速";,因为它前面有一个正斜杠。
使用/.*
,我可以很容易地获得以正斜杠开头的字符串的内容
我还可以将正确字符串中"e"的第一个实例与/.*?Ke
进行匹配
但我想以一种对VSCode语法高亮显示友好的方式将正确字符串中的每个"e"实例进行匹配,afaik就是.NET风格的
-干扰
如果您使用PCRE,您可以尝试以下正则表达式:
^(?!/).*(*SKIP)(*F)|e
^(?!/).*
一行不以/
开头(*SKIP)(*F)
跳过到目前为止消耗的文本,这是整行|
或e
与e
匹配,如果e
没有被跳过,则意味着它在以/
开头的行内
查看测试用例
编辑
谢谢简的建议。
如果/
并不总是从一行的开头开始,你可以尝试
^[^/]*(*SKIP)(*F)|e
参见测试用例
使用PCRE
可以进行
(?:G(?!A)|/)[^en]*Ke
请参阅regex101.com上的演示。