作者:无名有名我无名_593 | 2023-09-08 18:01
假设我有一个包含以下字符串的行的文件:
...cat dog lorem ipsum...
...cat lizard ...
...cat bird ...
...cat dog ...
我想写的是其中线相匹配的正则表达式cat
是不是其次是dog
:
...cat lizard ...
...cat bird ...
我怎样才能做到这一点?
1> Stew..:
通过跟随原子反向匹配原子@!
.在这种情况下,我们想要匹配的原子是与字符串匹配的捕获组dog
:
/\vcat (dog)@!
细分:
\v
激活非常神奇的解析模式
(dog)
匹配字符串dog
并将其放入捕获组1中
@!
反转原子(dog)
,使得图案匹配时dog
是不存在
这匹配cat
后面没有的实例(和尾随空格)dog
.
没有"非常神奇"的模式:`/ cat \(dog \)\ @!`
@Kent 1.提供一个明确的问题陈述,我找不到Stack Overflow的直接例子,如果有人问到并直接回答,我搜索后找到的答案比我要求的还要长.SO政策明确鼓励这一点.如果你知道要找什么,那么文件很棒.我在这里看,因为我还不知道.
我知道如何访问文档本身,但我不确定使用什么语法来查找我正在寻找的内容.我在一个与切线相关的问题中找到了它.如果您认为该文档的示例更清晰,请将其发布或链接到此处供人们查看.如果您认为问题应该被关闭或删除,因为它与SO政策相冲突,那么请关闭或删除它.我不认为在评论中讨论这个问题对那些试图回答问题的人有帮助.
即使在其他地方找到答案,这也是SO自我回答问题的完美好习惯.这个特别的Qn为我节省了30分钟,感谢@Stew.通过谷歌搜索SO的答案比阅读vim的帮助要容易得多,也不那么痛苦,特别是当涉及到vim棘手的正则表达式语法时!