Vim 正規表示式的使用

2021-09-29 07:43:42 字數 1291 閱讀 2341

vim 的搜尋功能是在普通模式下輸入 / 開始的, 並且 vim 的搜尋預設用正規表示式. 所以掌握正規表示式和正規表示式在 vim 中的用法對於提公升 vim 體驗極其重要. vim 的正規表示式幫助可以從:h usr_27 或 :h regexp獲得(善用幫助).

vim 包含兩個正規表示式引擎:

老式的基於回溯的引擎, 支援所有功能.

新式的 nfa 引擎, 對某些模式會快很多, 但不支援所有功能.

vim 會自動為你選擇合適的引擎, 不過, 如果遇到了問題或者想特別指定某乙個引擎, 可以在模式開頭處加入:

\%#=0 強制自動選擇

\%#=1 強制使用舊引擎

\%#=2 強制使用 nfa 引擎

通常我們不需要關心正規表示式引擎, 甚至不用過多關注正規表示式語法, 只管在/後面輸入文字搜尋即可. 但下面的知識對提高效率非常有效.

表示式含義

a|b匹配 a 或 b

gr(a|e)y

匹配 gray或 grey,同時()起捕獲分組作用

.匹配任一字元

[abc]

匹配任一字元: a 或 b 或 c

[^abc]

匹配任一字元, 但不包括 a, b, c

[a-z]

匹配從 a 到 z 之間的任一字元

[a-za-z]

匹配從 a 到 z, 及從 a 到 z 之間的任一字元

^匹配行首

$匹配行尾

*匹配前一項內容 0 次或多次

?匹配前一項內容 0 次或 1 次

+匹配前一項內容 1 次或多次

匹配前一項內容 n 次

匹配前一項內容 n 次或多次

匹配前一項內容次數介於 n 和 m 之間

vim 的正規表示式與主流的正規表示式基本一致, 對於熟悉 python, .net, perl(額)語言的同學在用 vim 的時候肯定會很親切. 但是畢竟有些不同.

一般正規表示式

vim 正規表示式含義\

\\分隔可選分支

()\(\)

分組, 組成單個匹配源

{}\{}

指定匹配次數{}\

指定匹配次數, 但是盡可能少..

匹配任一字元*\*

匹配前一項內容 0 次或多次?\?

匹配前一項內容 0 次或 1 次?\=

匹配前一項內容 0 次或 1 次+\+

匹配前一項內容 1 次或多次

記住了上面 vim 特有的寫法, 再去寫搜尋表示式就很簡單自然了.

這個最管用

vim 正規表示式

vim正規表示式 vim中的正規表示式功能很強大,如果能自由運用,則可以完成很多難以想象的操作。如果你比較熟悉perl的正規表示式,可以直接參照 與perl正規表示式的區別 一節。使用正規表示式的命令 使用正規表示式的命令最常見的就是 搜尋 命令。其格式如下 正規表示式 另乙個很有用的命令就是 s ...

vim正規表示式

元字元 說明 匹配任意乙個字元 abc 匹配方括號中的任意乙個字元。可以使用 表示字元範圍,如 a z0 9 匹配小寫字母和阿拉伯數字。abc 在方括號內開頭使用 符號,表示匹配除方括號中字元之外的任意字元。d 匹配阿拉伯數字,等同於 0 9 d 匹配阿拉伯數字之外的任意字元,等同於 0 9 x 匹...

Vim正規表示式

vim中的正規表示式功能很強大,如果能自由運用,則可以完成很多難以想象的操作。如果你比較熟悉perl的正規表示式,可以直接參照與perl正規表示式的區別 一節。使用正規表示式的命令最常見的就是 搜尋 命令。其格式如下 正規表示式另乙個很有用的命令就是 s 替換 命令,將第乙個 之間的正規表示式替換成...