VIM Regex詳解及與 perl 正則的區別

來源:互聯網
上載者:User

要在 VIM中使用進階搜尋和替換功能,就要熟悉 VIM 中的Regex,VIM 正則和我們常用正則的文法大體相近,但是還是有個別不同的地方。
下面我們對 VIM Regex進行介紹並總指出其與 Perl 正則的不同之處。

字元集

.         匹配任意一個字元 \w        匹配單詞字母,等同於[0-9A-Za-z_]。 \W        匹配單詞字母之外的任一字元,等同於[^0-9A-Za-z_]。 \t        匹配字元。 \a        所有的字母字元. 等同於[a-zA-Z] \e        \t        \r        \b        \d        數字 [0-9] \D        非數字 [^0-9] \x        十六進位數 [0-9a-fA-F] \X        非十六進位數 [^0-9a-fA-F] \s        空白字元 [ ] ( 和),等同於[ /t]\S        非空白字元 [^ ] (除  和 之外),等同於[^ /t]\l        小寫字母 [a-z] \L        非小寫字母 [^a-z] \u        大寫字母 [A-Z] \U        非大寫字母 [^A-Z] \i        標識符字元 'isident'\I        同於\i,但排除了數字 \k        關鍵字字元 \K        同\k,但排除數字 \p        可列印字元 \P        同\p,但排除數字 \f        檔案名稱字元 \F        同\f,但排除數字 \_        表示段行,他與以上的字元組合,如 \_s,\_a 。。。

範圍

[abc]     匹配方括弧中的任意一個字元。可以使用-表示字元範圍, [a-z0-9]  匹配小寫字母和阿拉伯數字。 [^abc]    在方括弧內開頭使用^符號,表示匹配除方括弧中字元之外的任一字元。 

多選一

模式中的"或"操作符是"\|"。如:/foo\|bar

分組
\(\)
在替換的時候可以使用 \1、\2 。。。來引用 \(\) 捕獲的內容
perl : ()

量次(重複次數)

*              匹配0-任意個 *\{-\}         * 的惰性模式    perl : *?\+             匹配1 至任意個  perl : +\+\{-\}        \+ 的惰性模式    perl : +?\?             匹配0-1個      perl : ?\{n,m\}        匹配n-m個      perl : {n,m}\{-n,m\}       \{n,m\} 的惰性模式    perl : {n,m}?\{n\}          匹配n個        perl : {n}\{-n\}         \{n\} 的惰性模式    perl : {n}?\{n,\}         匹配n 至任意個  perl : {n,}\{-n,\}        \{n,\} 的惰性模式    perl : {n,}?\{,m\}         匹配0- m 個    perl :  {0,m}
元字元 說明 \*        匹配 * 字元 \.        匹配 . 字元 \/        匹配 / 字元 \\        匹配 \ 字元 \[        匹配 [ 字元

位置

$         匹配行尾 ^         匹配行首 \<        匹配單詞詞首  perl : \b\>        匹配單詞詞尾 

函數式
:s/替換字串//=函數式
在函數式中可以使用 submatch(1)、submatch(2) 等來引用 /1、/2 等的內容,而submatch(0)可以引用匹配的整個內容。

This entry was written by zpz, posted on 2012
年 6 月 30 日 at 下午 5:01, filed under linux, vim and
tagged Vim, vim regexp, Vim教程, Vim替換,vim正則, Regex.
Bookmark the permalink. Follow any comments here with the RSS
feed for this post. Post a comment or leave a trackback: Trackback
URL.
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.