匹配以“/”开头的字符的所有实例
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
没有被跳过,意味着它在以 /
开头的行内
编辑
感谢简的建议。
如果/
不总是从一行的开头开始,您可以尝试
^[^\/]*(*SKIP)(*F)|e
使用 PCRE
你可以去
(?:\G(?!\A)|/)[^e\n]*\Ke
例如,我可能有字符串
/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
没有被跳过,意味着它在以/
开头的行内
编辑
感谢简的建议。
如果/
不总是从一行的开头开始,您可以尝试
^[^\/]*(*SKIP)(*F)|e
使用 PCRE
你可以去
(?:\G(?!\A)|/)[^e\n]*\Ke