[0-9]* (-)?[0-9]* q
似乎這正則表達式不VIM工作下面的文本爲什麼下面的正則表達式在vim中不起作用? (具體而言,?在正則表達式)
34778965 -1 q一些文字在這裏
[解決]
謝謝!我意識到這一切都必須逃脫。有什麼感覺不一致的是需要逃脫像\?但有些不是,比如*或$。 vimregex.com幫助。
[0-9]* (-)?[0-9]* q
似乎這正則表達式不VIM工作下面的文本爲什麼下面的正則表達式在vim中不起作用? (具體而言,?在正則表達式)
34778965 -1 q一些文字在這裏
[解決]
謝謝!我意識到這一切都必須逃脫。有什麼感覺不一致的是需要逃脫像\?但有些不是,比如*或$。 vimregex.com幫助。
您可以使用\d
來表示vim正則表達式中的數字。
爲您的文字一個很好的模式將是
\d\+ -\? \d\+ q
一般來說,Vim假設人物作爲自己的文字的。所以,如果你給\d+
,它應該被理解爲任何數字後跟一個加號。所以,你將不得不在模式中逃避這樣的正則表達式特定字符。
在Vim中,你需要逃避一些常見的正則表達式特殊字符,以作爲特殊的操作符。例如。 (-)
羣必須以非常靈活的模式編寫爲\(-\)
。在一個非常神奇的方式,你的模式會工作作爲爲 - :%s/\v[0-9]* (-)?[0-9]* q/replace/g
在你的情況,你不因爲你量化括號內的一個連字符需要分組可言,這樣他們就可以將其刪除:
[0-9]* -\? [0-9]* q
您是否檢查http://vimregex.com/? –
您可以使用'\ d'作爲數字。 '\ d \ + - \? \ d \ -'應該可以工作。 – SibiCoder
我從來沒有使用過Vim,但是從我在Federico的鏈接中看到的內容來看,您需要爲組工作避開括號。嘗試用[[0-9] * \( - \)?[0-9] * q' 您可能還必須轉義'-',不確定這個 – Altomre