三種匹配命令用法:
1、/ (搜索)命令
其格式如下:
/正則表達式
如:查找所有空行
/^s*$
2、:s(替換)命令
將第一個//之間的正則表達式替換成第二個//之間的字符串。
:s/正則表達式/替換字符串/選項
3碑韵、刪除包含特定字符的行
元字符
元字符是具有特殊意義的字符撬讽。使用元字符可以表達任意字符蕊连、行首悬垃、行 尾、某幾個字符等意義甘苍。
元字符一覽
元字符 | 說明 |
---|---|
. | 匹配任意一個字符 |
[abc] | 匹配方括號中的任意一個字符尝蠕。可以使用-表示字符范圍载庭,如[a-z0-9]匹 配小寫字母和阿拉伯?dāng)?shù)字看彼。 |
[^abc] | 在方括號內(nèi)開頭使用^符號,表示匹配除方括號中字符之外的任意字符囚聚。 |
\d | 匹配阿拉伯?dāng)?shù)字靖榕,等同于[0-9]。 |
\D | 匹配阿拉伯?dāng)?shù)字之外的任意字符顽铸,等同于[^0-9]茁计。 |
\x | 匹配十六進制數(shù)字,等同于[0-9A-Fa-f]谓松。 |
\X | 匹配十六進制數(shù)字之外的任意字符星压,等同于[^0-9A-Fa-f]。 |
\w | 匹配單詞字母鬼譬,等同于[0-9A-Za-z_]娜膘。 |
\W | 匹配單詞字母之外的任意字符,等同于[^0-9A-Za-z_]优质。 |
\t | 匹配<TAB>字符竣贪。 |
\s | 匹配空白字符,等同于[ \t]盆赤。 |
\S | 匹配非空白字符贾富,等同于[^ \t]。 |
另外牺六,如果要查找字符 *颤枪、.、/等淑际,則需要在前面用 \ 符號畏纲,表示這不是元字符,而只是普通字符而已春缕。
元字符 | 說明 |
---|---|
\* | 匹配 * 字符盗胀。 |
\. | 匹配 . 字符。 |
\/ | 匹配 / 字符锄贼。 |
\ | 匹配 \ 字符票灰。 |
\[ | 匹配 [ 字符。 |
表示數(shù)量的元字符
元字符 | 說明 |
---|---|
* | 匹配0-任意個 |
+ | 匹配1-任意個 |
? | 匹配0-1個 |
{n,m} | 匹配n-m個 |
{n} | 匹配n個 |
{n,} | 匹配n-任意個 |
{,m} | 匹配0-m個 |
表示位置的符號
元字符 | 說明 |
---|---|
$ | 匹配行尾 |
^ | 匹配行首 |
< | 匹配單詞詞首 |
> | 匹配單詞詞尾 |
用例
/char\s\+[A-Za-z_]\w*; " 查找所有以char開頭,之后是一個以上的空白屑迂,
" 最后是一個標(biāo)識符和分號
/char\s+[A-Za-z_]\w*;
/\d\d:\d\d:\d\d " 查找如 17:37:01 格式的時間字符串
/\d\d:\d\d:\d\d
:s/\<four\>/4/g " 將當(dāng)前行的four替換成4浸策,但是fourteen中的four不替換
:s/<four>/4/g
:s/\<four\>/4/ " 替換當(dāng)前行第一個 vivian 為 sky
:%s/\<four\>/4/g " 將所有行的four替換成4,但是fourteen中的four不替換惹盼,替換s前加%
1. 全局刪除匹配到的行
:g/pattern/d
2. 刪除第1-10行里的匹配到的行
:1,10g/pattern/d
3. 刪除不包含指定字符的行
:v/pattern/d
或
:g!/pattern/d