Regex Vim搜索模式';foo';但跳过包含';酒吧';不删除任何行
我想使用模式匹配在vim中使用搜索和高亮显示。我的第一个搜索条件是在一行中查找字符串Regex Vim搜索模式';foo';但跳过包含';酒吧';不删除任何行,regex,search,vim,regular-language,Regex,Search,Vim,Regular Language,我想使用模式匹配在vim中使用搜索和高亮显示。我的第一个搜索条件是在一行中查找字符串foo。我的第二个搜索条件是,如果同一行中包含bar,则跳过所有foo。我不想删除所有包含bar的行。我的第一个搜索条件符合以下条件: /foo 我的第二个标准不符合: /foo.*\(bar\)\@<! (这里我只想突出显示行号1) 我错过了什么 参考资料:您可以使用 /\(bar.*\)\@<!foo\(.*bar\)\@! /\(条形图。*\)\@ 使用非常神奇的模式: /\v(bar.*
foo
。我的第二个搜索条件是,如果同一行中包含bar
,则跳过所有foo
。我不想删除所有包含bar
的行。我的第一个搜索条件符合以下条件:
/foo
我的第二个标准不符合:
/foo.*\(bar\)\@<!
(这里我只想突出显示行号1)
我错过了什么
参考资料:您可以使用
/\(bar.*\)\@<!foo\(.*bar\)\@!
/\(条形图。*\)\@
使用非常神奇的模式:
/\v(bar.*)@<!foo(.*bar)@!
/\v(条形图。*)@
详细信息
(bar.*.@-负回溯:无bar
,后跟当前位置右侧的任何0个或更多字符
foo
-一个单词foo
(*bar)@代码>-负前瞻:在当前位置右侧的任何0个或更多字符后不允许出现条
等等,这是不是意味着你想要一个完整的单词来匹配条
?不,我的示例文本是错误的,现在已经修复了。我想跳过所有带有横条的行。但你无论如何都找到了解决办法:好吧,我把答案回滚到了版本1。你太快了@WiktorStribiżew,谢谢你的回答。我在一个答案上被多重怀疑弄清楚了。我意识到有一件事在我的数据栏中总是出现在后面,所以我没有使用lookback。我的错误是用foo
保存*
,而不是保存在atom条中。第二个错误是使用@而不是@代码>。
/\v(bar.*)@<!foo(.*bar)@!