vim正则匹配若干操作

三种匹配命令用法:

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券