2014-03-02 103 views
2

我想匹配一個字符串與替代品列表。當我做Vim正則表達式搜索替代選擇

echo "vimNotFunc" =~ "\vnot" 

我得到1,如預期。但是,如果我同一個正則表達式,但增加了一個選擇,我得到0

echo "vimNotFunc" =~ "\vnot|string" 

從幫助文件,我不應該逃避|。如果匹配返回1true)?

回答

3

您正在使用雙引號之間的字符串,因此必須用雙反斜線,如:

:echo "vimNotFunc" =~ "\\vnot|string" 

它更容易使用單引號,並且避免此問題,如:

:echo "vimNotFunc" =~ '\vnot|string' 

然而,我不知道你的第一個正則表達式是如何工作的。它不起作用在我的vim。這對我來說不是預期的結果。

+0

謝謝!如果沒有'\ v',第一個應該是''不是'''。 –

+1

它是否匹配取決於「ignorecase」選項的值。請參閱':help'ic''和':help =〜'。 (假設@Birei說,你使用雙反斜槓或單引號。) – benjifisher