Regex 替换命令中的gvim not运算符
我有许多文件看起来像下面的一个:Regex 替换命令中的gvim not运算符,regex,vim,Regex,Vim,我有许多文件看起来像下面的一个: HR0100001012010093001 EF0000120100930000000 HR0200001012010093001 EF0000120100930000000 HR0900001012010093001 EF000012010093000000 HR1000001012010093001 EF000012010093000000 HR1100001012010093001 text EF000012010093000000 HR120000101
HR0100001012010093001
EF0000120100930000000
HR0200001012010093001
EF0000120100930000000
HR0900001012010093001
EF000012010093000000
HR1000001012010093001
EF000012010093000000
HR1100001012010093001
text
EF000012010093000000
HR1200001012010093001
EF000012010093000000
HR1300001012010093001
EF000012010093000000
HR0100001012010093001
text
EF0000120100930000000
HR2000001012010093001
EF000012010093000000
HR2200001012010093001
EF000012010093000000
我想去掉所有以HRxx开头,以EF*结尾的块,除了那些以HR01开头的块,即我想得到以下结果:
HR0100001012010093001
EF0000120100930000000
HR0100001012010093001
text
EF0000120100930000000
使用以下命令:
:%s/HR01\_.\{-}EF.*$//g
我可以删除我正在搜索的行;作为最后一步,我想使用“Not操作符”来反转结果,从而得到我实际需要的行。不幸的是,我不知道怎么做
非常感谢您的帮助
谢谢,
Francesco找到了解决方案:
%s/HR\(01\)\@!\_.\{-}EF.*$//g