Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Vim搜索模式';foo';但跳过包含';酒吧';不删除任何行_Regex_Search_Vim_Regular Language - Fatal编程技术网

Regex Vim搜索模式';foo';但跳过包含';酒吧';不删除任何行

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.*

我想使用模式匹配在vim中使用搜索和高亮显示。我的第一个搜索条件是在一行中查找字符串
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)@!