代码之家  ›  专栏  ›  技术社区  ›  João Portela

VIM中带有负面表情的奇怪行为

  •  0
  • João Portela  · 技术社区  · 15 年前

    所以,我在Vim中搜索:

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

    如预期的那样,它与具有以下内容的行不匹配:

    player="1" 
    

    但匹配的行有:

    unum="1" 
    

    我做错什么了?原子不是要全部否定吗: \(\(unum\)\|\(player\)=\)

    自然而然地: /\(\(unum\)\|\(player\)=\) 比赛 unum= player= .

    1 回复  |  直到 15 年前
        1
  •  5
  •   ZyX    15 年前

    你的模式是

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

    相当于

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

    一定是

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

    只需删除一个右括号和一个左括号。

    写作 \" 很奇怪:在你必须逃跑的情况下 " 你还需要逃离斜杠。