关于VIM中正则表达式的学习

2015-5-14
今天发现了vim中的另一个强大功能——正则表达式
它的功能和作用都很强大,于是我决定对它进行深入研究,就从今天开始。
首先,让我们先来了解一下vim中的magic配置
magic的作用 我们可以简单的理解为它是为了我们方便使用正则中的特殊符号$ . * ^ 而生的
我们可以敲这样的命令:set magic(启用magic)或者:set nomagic(停用magic)
:set magic 当我们开启这个配置时,我们在使用正则时就不需要在$ . * ^的前面加\
:set nomagic 当我们使用设个配置时,我们只能在$ ^的前面不使用\而在. *以及其他特殊字符比如( ) {前面还是需要加\
当然,我们也可以将magic命令直接配置到我们的vimrc配置文件当中去
我们也可以临时在正则中启用magic命令的标识符是\m\M\v\V
\m 等价magic 用法/\m\(1,2,3\).*
\M 等价nomagic 用法/\M\(1,2,3\)\.\*
\v (very magic意为所有特殊符号都不需要\反斜杠) 用法/\v(1,2,3).*
\v (very nomagic意为所有特殊符号都要加\) 用法 /\V\^\(1,2,3\)\.\*

元字符

可理解为关键字或保留字,这些字符做特殊用途

. 匹配换行符以外的任意字符
^ 匹配字符串的开始位置
$ 匹配字符串的结束位置
* 匹配前面的子表达式零次或多次,等价于{0,}
+ 匹配前面的子表达式一次或多次,等价于{1,}
? 匹配前面的子表达式零次或一次,等价于{0,1}
\ 转义符,将特殊字符进行转义
[] [abc]字符集合,匹配所包含的任意一个字符
[^abc]负值字符集合,匹配未包含的任意字符
[a-z] 字符范围,匹配指定范围内的任意字符
() 两个字符一起使用,用于创建一个用于匹配的子串,也叫分组
{} {n}匹配确定的n次
{n,}至少匹配n次,等价于”*”
{n,m}最少匹配n次且最多匹配m次(其中n<=m)
还有| 交替匹配,符号两边的任意一项

预设字符

\b 单词边界,同\<
\B 非单词边界,同 >
\d 数字字符,同 [0-9]
\D 非数字字符,同[^0-9]
\s 空白字符,同 [ \t\n\r\f\v]
\S 非空白字符,同 [^\t\n\r\f\v]
\w 字母数字字符,同 [a-zA-Z0-9_]
\W 非字母数字字符,同 [^a-zA-Z0-9_]
\t Tab,同0x09
\r 回车符,同0x0D
\n 换行符,同0x0A
\f 换页符
\v 垂直制表符,同ox0b
\x 十六进制,例如“x41”匹配“A”
\u Unicode字符。例如,u00A9匹配版权符号

s/和g/是两个限定符号
s/表示用指定的字符替换正则的字符 只影响正则字符
g/表示查找有指定字符的行 影响正则字符所在的整行
:g/xxxx会将匹配出来的内容筛选出来在最后排列出来,方便观察

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值