现在的位置: 首页 > 综合 > 正文

VIM中的正则表达式

2019年10月31日 ⁄ 综合 ⁄ 共 1184字 ⁄ 字号 评论关闭

VIM中的正则表达式

转载:http://jjz.iteye.com/blog/387649

记性不好,才一段时间不用发现vim 的东西忘的差不多了。要重新熟悉才行。现从正则表达式开始,用惯了JavaPython 的正则表达式,再用Linux 的正则表达式还真有点不习惯,而且grep 和vim 的正则表达式有些微区别,grepegrep 的正则表达式也有一点区别。用用之前要好好想想才行,太恶心了。

今天现把VIM 的正则表达式整理一些,过几天整理grep 的。(补充:grep的正则表达式在元字符方面和vi差不多,不整理了)

 

vim 的正则表达式的有两种模式,magic 和nomagic ,两种模式下,元字符是不一样的。可以通过set
mogic
 和set nomagic 进行选择,默认是magic 。建议不要乱设置,就用magic 模式差不多。也可以再Pattern 指定用magicnomagic ,这里不废话了,下面列出常用的magic 的表达式。

 

对前一个模式的次数匹配

\*

0 到多次,尽可能多匹配

\+

1 到多次,尽可能多匹配

\=

0 到1 次,尽可能多匹配

\?

0 到1 次,尽可能多匹配

\{n,m}

n 到m 词,尽可能多匹配

\{n}

n 次,尽可能多匹配

\{n,}

至少n 次,尽可能多匹配

\{,m}

0 到m 次,尽可能多匹配

\{}

0 到多次,尽可能多匹配(和\* 一样)

\{-n,m}

n 到m 次,尽可能少匹配

\{-n}

n 次

\{-n,}

至少n 次,尽可能少匹配

\{-,m}

至多m 次,尽可能少匹配

\{-}

0 到多次,尽可能少匹配

 

位置匹配

^

行开头

\_^

行开头

$

行末尾

\_$

行末尾

.

换行之外的任何字符

\_.

单个字符,包括换行符

\<

单词开始

\>

单词结束

\%^

文件开头

\%$

文件结束

\%V

可视化区域内部

\%#

光标位置

\%'m

标记点m,m 可以自己定义的标记点( 使用'm)

\%nl

匹配第n 行,n 是一个数字

\%nc

匹配第n 列,n 是一个数字

常用预定义字符

\i

标识符字符,如字母数字下划线等

\I

\i 相似,但不包括数字

\f

文件名字符

\F

类似\f ,但不包括数字

\p

可打印字符

\P

类似\p ,但不包括数字

\s

空白字符

\S

非空白字符

\d

数字[0-9]

\D

非数字[^0-9]

\x

16 进制字符[0-9a-fA-F]

\X

16 进制字符

\o

八进制字符[0-7]

\O

非八进制字符

\w

字母[a-zA-Z_0-9]

\W

非字母

\h

单词开头字符,比\w 少了数字

\H

非单词开头字符

\a

字母表字符[a-zA-Z]

\A

非字母表字符

\l

小写字母

\L

非小写字母

\u

大写字母

\U

非大写字符

\_x

X 是上面字符中的一个,\_x 比\x 多匹配一个换行符

\t

<Tab>

\n

换行符

\1 \2 \3

n 个捕获的组\(\)

 

其他

\(\)

组捕获

\%(\)

非捕获组,和\(\) 类似,但不捕获

\|

分支

 

抱歉!评论已关闭.