三種匹配命令用法:
1、/ (搜索)命令
其格式如下:
/正則表達式
如:查找所有空行
/^s*$
2、:s(替換)命令
將第一個//之間的正則表達式替換成第二個//之間的字符串。
:s/正則表達式/替換字符串/選項
3、刪除包含特定字符的行
元字符
元字符是具有特殊意義的字符。使用元字符可以表達任意字符、行首、行 尾、某幾個字符等意義。
元字符一覽
元字符 | 說明 |
---|---|
. | 匹配任意一個字符 |
[abc] | 匹配方括號中的任意一個字符。可以使用-表示字符範圍,如[a-z0-9]匹 配小寫字母和阿拉伯數字。 |
[^abc] | 在方括號內開頭使用^符號,表示匹配除方括號中字符之外的任意字符。 |
\d | 匹配阿拉伯數字,等同於[0-9]。 |
\D | 匹配阿拉伯數字之外的任意字符,等同於[^0-9]。 |
\x | 匹配十六進制數字,等同於[0-9A-Fa-f]。 |
\X | 匹配十六進制數字之外的任意字符,等同於[^0-9A-Fa-f]。 |
\w | 匹配單詞字母,等同於[0-9A-Za-z_]。 |
\W | 匹配單詞字母之外的任意字符,等同於[^0-9A-Za-z_]。 |
\t | 匹配<TAB>字符。 |
\s | 匹配空白字符,等同於[ \t]。 |
\S | 匹配非空白字符,等同於[^ \t]。 |
另外,如果要查找字符 *、.、/等,則需要在前面用 \ 符號,表示這不是元字符,而只是普通字符而已。
元字符 | 說明 |
---|---|
\* | 匹配 * 字符。 |
\. | 匹配 . 字符。 |
\/ | 匹配 / 字符。 |
\ | 匹配 \ 字符。 |
\[ | 匹配 [ 字符。 |
表示數量的元字符
元字符 | 說明 |
---|---|
* | 匹配0-任意個 |
+ | 匹配1-任意個 |
? | 匹配0-1個 |
{n,m} | 匹配n-m個 |
{n} | 匹配n個 |
{n,} | 匹配n-任意個 |
{,m} | 匹配0-m個 |
表示位置的符號
元字符 | 說明 |
---|---|
$ | 匹配行尾 |
^ | 匹配行首 |
< | 匹配單詞詞首 |
> | 匹配單詞詞尾 |
用例
/char\s\+[A-Za-z_]\w*; " 查找所有以char開頭,之後是一個以上的空白,
" 最後是一個標識符和分號
/\d\d:\d\d:\d\d " 查找如 17:37:01 格式的時間字符串
:s/\<four\>/4/g " 將當前行的four替換成4,但是fourteen中的four不替換
:s/\<four\>/4/ " 替換當前行第一個 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