2

例如,我可能有字符串

/zombie nimble zombie quick
Plants vs Zombies reference

我想匹配每个'e',但只能从短语“zombie nimble zombie quick”中匹配,因为它前面有一个正斜杠。

我可以很容易地用\/.*.
我还可以将正确字符串中的第一个“e”实例与\/.*?\Ke

但我想以一种对 VSCode 语法突出显示友好的方式匹配正确字符串中的每个 'e' 实例,这 afaik 是 .NET 风格

-果酱

4

2 回答 2

2

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

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

查看测试用例


编辑

感谢简的建议。

如果/不总是从行首开始,您可以尝试

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

查看测试用例

于 2021-05-24T05:05:21.937 回答
2

使用PCRE你可以去

(?:\G(?!\A)|/)[^e\n]*\Ke

在 regex101.com 上查看演示

于 2021-05-24T06:34:06.750 回答