2017-05-26 42 views
0

字符串:VIM搜索與支架符號

abc|c|xyz 

模式:

|[^|]* 

我希望這將只匹配 '| XYZ',但它匹配 '| C | XZY'。這是爲什麼?我的模式意味着「以'|'開頭並且任何後面的字符不能是'|'「。對?

+0

':match Foo/| [^ |] *'同時匹配'| c'和'| xyz'。由於他們是一個接一個,他們看起來像*一個*匹配,但他們實際上是兩個*。如果你做'/ | [^ |] *',光標將被放置在'| c'(第一個匹配)的'|'上並按'n'將會把你放在'| xyz '(第二場比賽)。 – romainl

+0

感謝您的好解釋。 – user697911

回答

2

Vim不匹配「| c | xzy」有兩個單獨的匹配,「| c」和「| xyz」。您可以通過按n在它們之間跳轉來驗證。

看來你只想要最後一場比賽。您可以添加「$」,以確保您的模式只匹配行的末尾:

|[^|]*$ 
|[^|]*$ 
+0

太棒了!有效。 – user697911