views:

79

answers:

1

So, I am doing this search in vim:

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

and as expected it does not match lines that have:

player="1" 

but matches lines that have:

unum="1" 

what am i doing wrong? isn't the atom to be negated all of this: \(\(unum\)\|\(player\)=\)

naturally just doing: /\(\(unum\)\|\(player\)=\) matches unum= or player=.

+3  A: 

Your pattern is

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

which is equivalent to

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

And it must be

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

Just remove one closing and one opening parenthesis.

And, writing \" is strange: in situations where you have to escape " you also need to escape slash.

ZyX
thanks, I really wasn't seeing that! :)
João Portela