ICer技能01正则匹配

1.匹配指令

符号作用
.匹配任意一个字符
[abc]匹配方括号中的任意一个字符(可以使用-表示字符范围,如[a-z 0-9]匹配小写字母和阿拉伯数字)
[^abc]匹配除方括号中字符之外的任意字符
\d匹配阿拉伯数字,等同于[0-9]
\D匹配阿拉伯数字之外的任意字符,等同于[^0-9]
\x匹配十六进制数字
\X匹配十六进制数字之外的任意字符
\w匹配单词字母,等同于[0-9 A-Z a-z]
\W匹配单词字母之外的任意字符
\t匹配TAB字符
\s匹配空白字符
\S匹配非空白字符

2.位置符号

符号表示的位置
$匹配行尾
^匹配行首(和[^abc]中的符号作用不同)
\ <匹配单词词首
\ >匹配单词词尾

3.数量符号

符号表示的数量
*匹配0-任意个
\ +匹配1-任意个
\ ?匹配0-1个
\ {n,m}匹配n-m个
\ {n}匹配n个
\ {n,}匹配n-任意个
\ {,m}匹配0-m个

4.特殊符号

符号作用
\ *匹配*字符
\ .匹配.字符
\ /匹配/字符
\ \匹配\字符
\ [匹配[字符

5.几个例子

①把所有单词help或Help都改为大写的HELP
:%s/[Hh]elp/HELP/g

  • :命令指示
  • %所有行有效
  • s查找替换
  • [Hh]带H或h

②使用单个空格替换一个或多个空格
:%s/ \ +//g

  • \ +表示数量
  • //中没有间距就是无空格

③删除所有空行(没有任何字符,除了一个回车符)

  • :g/^ $ /d:匹配到行首行尾中间无字符则删除
  • :g/[ \t]*$/d:多个空格到行尾删除

④删除含有某些字符的行
:g/ERROR/d

  • 记住就好hhh

⑤删除每行的所有的前导空格
:%s/^ *//g

  • ^ *:表示从行首知道有字符

⑥在文件中的每一行的开始插入“->”
:%s/^/->/g

  • 定位行首,插入字符即可

⑦删除以[a,b,c]开头的行
:%s/^ [a|b|c].*$//g

  • 删除abc开头的行,而不是a开头或者b开题或者c开头

⑧使用“\ (”和“\ )”符号括起正规表达式,即可在后面使用\1 \2等变量来访问 \ (和\ )中的内容

例:/ \ (a\ +\ )[^a]\ +\1
头和结尾处a的个数相同的字符串

  • 相当于保存下来再调用

匹配aabbbaa
匹配aaacccaaa
不匹配abbbaa

⑧交换列表中所有连字符分隔的条目的顺序
ABC: XYZ
: %s/ (.* \ ):\ (.*\ )/\2:\ 1/g

  • 先存任意字符到\1
  • 然后匹配冒号:
  • 再存任意字符到\2
  • 然后1 2 互换代替
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值