一个不错的VIM正则对照表

本文深入探讨了Vim编辑器中正则表达式的高级应用,包括特殊符号的含义、重复次数的匹配、特定模式的查找及匹配等技巧。通过实例展示了如何使用正则表达式进行复杂的文本操作,旨在提升用户对Vim编辑器功能的理解和使用效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

序号 入门教程 Vim 备注
1 b是正则表达式规定的一个特殊代码……代表着单词的开头或结尾,也就是单词的分界处 没有直接对应的。
<,表示单词的起始;
>,表示单词的结
要查找单词hi,要用
2 +则匹配重复1次或更多次 {1,} 1 或更多,同 + d+匹配1个或更多连续的数字,Vim用 d+
3 ? 重复零次或一次 {0,1}   0 或 1,同 =
4 (?0d{2}[) -]?d{8} 
这个表达式可以匹配几种格式的电话号码
(=0d{2}[) -]=d{8}
5 如果满足其中任意一种规则都应该当成匹配,具体方法是用|把不同的规则分隔开 在一个查找模式中,”或” 运算符是 “|”
6 b(w+)bs+1b
可以用来匹配重复的单词
<(w+)s+1>
7 bw+(?=ingb),匹配以ing结尾的单词的前面部分(除了ing以外的部分) Vim称为:零宽度匹配前面的匹配原
8 (?<=bre)w+b 会匹配以re开头的单词的后半部分(除了re以外的部分) ( 零宽度反向匹配。要求前面的匹配原紧贴在后面的模式之前匹配
9 假如你想要给一个很长的数字中每三位间加一个逗号(当然是从右边加起了)
((?<=d)d{3})+b
((d)@<=d{3})+>
10 (?<=s)d+(?=s)匹配以空白符间隔的数字 (s)@<=d+(s)@=
11 匹配包含后面不是字母u的字母q的单词

bw*q(?!u)w*b

零宽度否匹配,亦即,要求前面的匹配原在当前位置_不_匹配
12 d{3}(?!d)匹配三位数字,而且这三位数字的后面不能是数字 d{3}(d)@!
13 b((?!abc)w)+b匹配不包含连续字符串abc的单词 <(((abc)@!)w)+>
14 (? ([a-z])@ 零宽度反向否匹配,要求前面的匹配原_不_紧贴在其后的模式之前匹配
15 (?<=<(w+)>).*(?=)匹配不包含属性的简单HTML标签内里的内容 (<3>)@<=.*()@=


表达式写出来 了,验证可用,但不明白为什么是3。

转载于:https://my.oschina.net/i33/blog/90214

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值