regex 需要Vim正则表达式的帮助

vybvopom  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(121)

我尝试使用一个正则表达式来捕获以下模式:
我想包括a-z中的字符,但排除efg我知道Vim中的字符类

[^efg]

字符串

不包括字符e、fg

我试过遵循正则表达式

%s/[a-z[^efg]]//gc


但它并没有捕捉到我想要的

5jvtdoz2

5jvtdoz21#

您可以考虑在单个字符组中使用您需要的其他范围(即[a-d][h-z]),该字符组应匹配除显式排除的字符之外的所有字符:

[a-dh-z]

字符串

示例


的数据
你可以see an interactive example of this here

k75qkfdt

k75qkfdt2#

另一种方法是:

:%s/[efg]\@!.//g

字符串
因为\@!做负/逆匹配。

相关问题