Vim 正規表示式:+ 必須轉義,* 則不需要。為什麼?

Vim 正規表示式:+ 必須轉義,* 則不需要。為什麼?

假設您要選擇的行是:可選空格,後面跟著正整數,然後是更多可選空格。

這是一個適用於此目的的正規表示式:

:g/^\s*\d\+\s*/

運算*符沒有轉義,而 是+。轉義*會破壞正規表示式。取消轉義也是如此+

對此有好的解釋嗎?理想的情況是讓規則變得直觀。使用 vim 時,由於不尋常的轉義規則,我一直很難編寫正則表達式,所以我希望有一些洞察力,讓一切都對我有用。

答案1

這是由於歷史原因,如果變更會破壞相容性。但是,您可以在模式前加上前綴\v來打開“非常神奇”,這樣您就不必進行特殊的轉義。看:help /\v

相關內容