匹配以“/”开头的字符的所有实例

Match all instances of a character preceded by '/'

例如,我可能有字符串

/zombie nimble zombie quick
Plants vs Zombies reference

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

我可以使用 \/.* 很容易地获取正斜杠前面的字符串的内容。
我还可以将正确字符串中 'e' 的第一个实例与 \/.*?\Ke

匹配

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

-果酱

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

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

test cases


编辑

感谢简的建议。

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

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

test cases

使用 PCRE 你可以去

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

参见a demo on regex101.com