vim中的奇怪行为与负面的后视

时间:2010-04-15 16:38:36

标签: regex vim find negative-lookbehind

所以,我正在vim中进行搜索:

/\(\(unum\)\|\(player\)=\)\@<!\"1\"

并且正如预期的那样,它与以下行不匹配:

player="1" 

但匹配包含以下内容的行:

unum="1" 
我在做错了什么?不是所有这一切都要被否定的原子:\(\(unum\)\|\(player\)=\)

自然而然地做:/\(\(unum\)\|\(player\)=\)匹配unum=player=

1 个答案:

答案 0 :(得分:5)

你的模式是

\(
    \(unum\)\|
    \(player\)=
\)\@<!"1"

相当于

\(
    \(unum\)\|
    \(player=\)
\)\@<!"1"

一定是

\(
    \(unum\|player\)=
\)\@<!"1"

只需删除一个结束括号和一个左括号。

而且,写\"很奇怪:在你必须逃离"的情况下,你也需要逃避斜线。