gvim正則表達(dá)式常在命令行模式下使用,一般用于文本文件字符串的替換、刪除等操作。
典型的替換命令格式:
%s/正則表達(dá)式/要替換的字符串/g”
典型刪除命令格式:
%g/正則表達(dá)式/d
我們先講元字符,接著講述一些基本的應(yīng)用例子,最后講一些更高階的應(yīng)用例子,一文搞懂正則表達(dá)式!
一. 元字符
先搞清幾個(gè)基本的概念,普通元字符,特殊元字符,數(shù)量元字符,位置元字符。
1. 普通元字符:
通常用來表示數(shù)字、單詞、空格等。
[abc] | 匹配a,b,c任意字符 |
[^abc] | 匹配除abc以外的字符 |
d | 匹配阿拉伯?dāng)?shù)字,等同于[0~9],decimal十進(jìn)制 |
D | 匹配阿拉伯?dāng)?shù)字之外的任意字符,等同于[^0~9] |
x | 匹配十六進(jìn)制數(shù)字,等同于[0-9A-Fa-f],heximal十六進(jìn)制 |
X | 匹配十六進(jìn)制數(shù)字之外的任意字符,等同于[^0-9A-Fa-f] |
w | 匹配單詞字母,等同于[0-9A-Za-z],正則表達(dá)式中一般用"w+"表示一個(gè)單詞 |
W | 匹配單詞字母之外的任意字符,等同于[0-9A-Za-z] |
s | 匹配空白符,等同于[ ] |
t? | 匹配Tab字符 |
. | 匹配任意字符 |
2. 特殊字符:
特殊字符通常用來表示一些特殊的符號(hào),用轉(zhuǎn)義。
* | 匹配 * 字符 |
. | 匹配 . 字符 |
/ | 匹配 / 字符 |
匹配 字符 | |
[ | 匹配 [ 字符 |
3. 數(shù)量元字符:
通常用來表示普通字符(數(shù)字、單詞、空格)的數(shù)量。
* | 匹配0~任意個(gè) |
+ | 匹配1~任意個(gè) |
? | 匹配0~1個(gè) |
{n,m} | 匹配n ~ m個(gè) |
{n} | 匹配 n個(gè) |
{n,} | 匹配 n ~ 任意個(gè) |
{,m} | 匹配 0 ~ m 個(gè) |
4. 位置元字符
$ | 匹配行尾 |
v | 匹配行首 |
< | 匹配單詞詞首 |
> | 匹配單詞詞尾 |
幾個(gè)例子:
[abc]表示匹配 a,b,c中的任意一個(gè)字符;
abc表示匹配abc,abc為一個(gè)整體;
[^abc]表示匹配除 a,b,c 以外的任意任意字符
^abc表示匹配以abc為開頭的字符串,abc為一整體
w+表示匹配任意單詞
二. 基礎(chǔ)應(yīng)用
替換與刪除示例:
1. 把所有的abc或者Abc都替換為大寫的ABC;
命令: %s/[Aa]bc/ABC/g
2. 刪除所有空行(空行中無任何字符)
命令: %g/ ^ $/d
3.刪除所有空行(空行中可以包含空白符、Tab鍵等)
命令:%g/^ s * $/d
4. 刪除含有abc字符的行
命令1: g/abc/d
命令2: %s/.*abc. *$//g (替換命令實(shí)現(xiàn)刪除)
5. 刪除每行開頭的空格
命令 :%s/^ *//g——通過替換命令實(shí)現(xiàn)刪除效果
6. 在文件中的每一行的開始插入abc字符
命令 ——:%s/^/abc/g
7. 在每一行尾部都加上abc字符
命令: %s/$/abc/g
8. 刪除以數(shù)字開頭的行
命令: %s/^d . *$ //g
三. 高階應(yīng)用-分組
所謂分組,即使用 ( 和 )符號(hào)括起來的正則表達(dá)式,即可在其后面使用1 ,2等變量來訪問 ( 和 )符號(hào)括起來的內(nèi)容。
1.交換順序:ABC:XYZ改為XYZ:ABC
命令:%s/ (. ):(. )/2:1/g
2.abc開頭的后面為一個(gè)或多個(gè)空格,然后為一個(gè)單詞,將abc和該單詞交換位置
命令: %s/^(abc)s+ (w+) /2 1/g
3.刪除重復(fù)行
命令 :%s/^ (.*)( 1){2,}/1/g (將2行及以上重復(fù)行壓縮成一行)
解釋:^(. * )表示以任意字符開頭的行, 表示換行符, ( 1){2,}表示^(.* )換行后重復(fù)2次以上,替換成一行。
4. 給各行開頭加上行號(hào)+: (123: )
命令: %s/^/=line('.').':'
解釋:^代表行首,line('.')代表獲取行號(hào)的函數(shù),.':'代表拼接:號(hào),最終格式為:"行號(hào):"。
審核編輯:劉清
-
Gvim
+關(guān)注
關(guān)注
0文章
8瀏覽量
2953
原文標(biāo)題:你還不會(huì)gvim正則表達(dá)式???來,一文搞懂!
文章出處:【微信號(hào):處芯積律,微信公眾號(hào):處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論