vim正则匹配若干操作

2019-05-21  本文已影响0人  阿发贝塔伽马

三种匹配命令用法:

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开头,之后是一个以上的空白,
                                             " 最后是一个标识符和分号
/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                        " 将当前行的four替换成4,但是fourteen中的four不替换
:s/<four>/4/g
: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
上一篇下一篇

猜你喜欢

热点阅读