序号
|
入门教程
|
Vim
|
备注
|
1
|
\b是正则表达式规定的一个特殊代码……代表着单词的开头或结尾,也就是单词的分界处
|
没有直接对应的。 \<,表示单词的起始; \>,表示单词的结
|
要查找单词hi,要用 \<hi\>
|
2
|
+则匹配重复1次或更多次
|
\{1,} 1 或更多,同 \+
|
\d+匹配1个或更多连续的数字,Vim用 \d\+
|
3
|
? 重复零次或一次
|
\{0,1} 0 或 1,同 \=
|
|
4
|
\(?0\d{2}[) -]?\d{8} 这个表达式可以匹配几种格式的电话号码
|
\(\=0\d\{2}[) -]\=\d\{8}
|
|
5
|
如果满足其中任意一种规则都应该当成匹配,具体方法是用|把不同的规则分隔开
|
在一个查找模式中,"或" 运算符是 "\|"
|
|
6
|
\b(\w+)\b\s+\1\b 可以用来匹配重复的单词
|
\<\(\w\+\)\s\+\1\>
|
|
7
|
\b\w+(?=ing\b),匹配以ing结尾的单词的前面部分(除了ing以外的部分)
|
\<\w\+\(ing\)\@=
|
Vim称为:零宽度匹配前面的匹配原
|
8
|
(?<=\bre)\w+\b 会匹配以re开头的单词的后半部分(除了re以外的部分)
|
\(\<re\)\@<=\w\+
|
零宽度反向匹配。要求前面的匹配原紧贴在后面的模式之前匹配
|
9
|
假如你想要给一个很长的数字中每三位间加一个逗号(当然是从右边加起了) ((?<=\d)\d{3})+\b
|
\(\(\d\)\@<=\d\{3}\)\+\>
|
|
10
|
(?<=\s)\d+(?=\s)匹配以空白符间隔的数字
|
\(\s\)\@<=\d\+\(\s\)\@=
|
|
11
|
匹配包含后面不是字母u的字母q的单词
\b\w*q(?!u)\w*\b
|
\<\w*q\(u\)\@!\w*\>
|
零宽度否匹配,亦即,要求前面的匹配原在当前位置_不_匹配
|
12
|
\d{3}(?!\d)匹配三位数字,而且这三位数字的后面不能是数字
|
\d\{3}\(\d\)\@!
|
|
13
|
\b((?!abc)\w)+\b匹配不包含连续字符串abc的单词
|
\<\(\(\(abc\)\@!\)\w\)\+\>
|
|
14
|
(?<![a-z])\d{7}匹配前面不是小写字母的七位数字
|
\([a-z]\)\@<!\d\{7}
|
零宽度反向否匹配,要求前面的匹配原_不_紧贴在其后的模式之前匹配
|
15
|
(?<=<(\w+)>).*(?=<\/\1>)匹配不包含属性的简单HTML标签内里的内容
|
\(<\3>\)\@<=.*\(<\/\(\w\+\)>\)\@=
|
表达式写出来 了,验证可用,但不明白为什么是\3。
|