匹配前面带有 '/' 的字符的所有实例



例如,我可能有字符串

/zombie nimble zombie quick
Plants vs Zombies reference

我想匹配每个"e",但只能从短语";僵尸敏捷僵尸快速";,因为它前面有一个正斜杠。

使用/.*,我可以很容易地获得以正斜杠开头的字符串的内容
我还可以将正确字符串中"e"的第一个实例与/.*?Ke进行匹配

但我想以一种对VSCode语法高亮显示友好的方式将正确字符串中的每个"e"实例进行匹配,afaik就是.NET风格的

-干扰

如果您使用PCRE,您可以尝试以下正则表达式:

^(?!/).*(*SKIP)(*F)|e
  • ^(?!/).*一行不以/开头
  • (*SKIP)(*F)跳过到目前为止消耗的文本,这是整行
  • |
  • ee匹配,如果e没有被跳过,则意味着它在以/开头的行内

查看测试用例


编辑

谢谢简的建议。

如果/并不总是从一行的开头开始,你可以尝试

^[^/]*(*SKIP)(*F)|e

参见测试用例

使用PCRE可以进行

(?:G(?!A)|/)[^en]*Ke

请参阅regex101.com上的演示。

最新更新