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

Joã*_*ela 0 regex vim find negative-lookbehind

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

/\(\(unum\)\|\(player\)=\)\@<!\"1\"
Run Code Online (Sandbox Code Playgroud)

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

player="1" 
Run Code Online (Sandbox Code Playgroud)

但匹配有以下行:

unum="1" 
Run Code Online (Sandbox Code Playgroud)

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

自然只是做:/\(\(unum\)\|\(player\)=\)匹配unum=player=.

ZyX*_*ZyX 5

你的模式是

\(
    \(unum\)\|
    \(player\)=
\)\@<!"1"
Run Code Online (Sandbox Code Playgroud)

这相当于

\(
    \(unum\)\|
    \(player=\)
\)\@<!"1"
Run Code Online (Sandbox Code Playgroud)

它一定是

\(
    \(unum\|player\)=
\)\@<!"1"
Run Code Online (Sandbox Code Playgroud)

只需删除一个结束括号和一个左括号即可​​.

写作\"很奇怪:在你必须逃避的情况下,"你也需要逃避斜线.