VIM中的正则表达式

VIM中的正则表达式

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

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

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

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

对前一个模式的次数匹配

\*

0到多次,尽可能多匹配

\+

1到多次,尽可能多匹配

\=

01次,尽可能多匹配

\?

01次,尽可能多匹配

\{n,m}

nm词,尽可能多匹配

\{n}

n次,尽可能多匹配

\{n,}

至少n次,尽可能多匹配

\{,m}

0m次,尽可能多匹配

\{}

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

\{-n,m}

nm次,尽可能少匹配

\{-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个捕获的组\(\)

其他

\(\)

组捕获

\%(\)

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

\|

分支


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值