使用VSCode进行查找、替换时,经常需要用到正则表达式,一段时间不用就忘了,每次要用的时候都要耽误很多时间去查找,所以整理了一份很全的放在这里。这个其实是.NET使用的正则表达式,VSCode也是一样的,微软系的产品(比如Visual Studio等)应该都是使用这个标准的。
本文只列举和翻译了常用的一些,完整内容请参照微软官方文档
注意事项:在VSCode中使用时,要先把通配符开关打开(开关是查找输入框右边的".*"符号)
转义字符 | 匹配内容 |
---|---|
tab | |
回车符号 | |
换行符号 | |
uxxxx | 匹配Unicode编码为xxx的字符,如u0020匹配空格,这个符号可以用来帮助匹配中文,后面说 |
特殊符号转义,如"*" ,转义后匹配的是字符"*", “(” 匹配的是括号"(" | |
[字符序列] | 匹配[ ]中的任意字符,如[ae],字符a和字符e均匹配 |
[^字符序列] | 匹配不在[ ]中的任意字符,如[^ae]除了a和e,其他字符都匹配 |
[字符1-字符2] | 匹配在[ ]之间的任意字符,如[a-x],就是匹配a和x之间的所有字符(包括a和x) |
. | 匹配任意单个字符(除了 ) |
w | 匹配所有单词字符(如"a",“3”,“E”,但不匹配"?","."等) |
W | 和w相反,匹配所有非单词字符 |
[u4e00-u9fa5] | 利用区间和u转义符号,匹配中文(该区间包含2万个汉字),可以当做中文版的w使用 |
s | 匹配空格 |
S | 和s相反,匹配非空格 |
d | 匹配数字字符,如"1",“4”,"9"等 |
D | 和d相反,匹配除了数字字符外的其他字符 |
* | 将前面的元素匹配0到多次,如"d*.d",可以匹配"19.9",".0",“129.9” |
+ | 将前面的元素匹配1到多次,如"be+",可以匹配"be", “beeeeee” |
? | 将前面的元素匹配0次或者一次,如"rai?n" 可以且只可以匹配 “ran” 或者 “rain” |
{n} | n是个数字,将前面的元素匹配n次,如"be{3}“可以且只可以匹配 ”beee” |
{n, m} | 将前面的元素匹配至少n次,最多m次,如"be{1,3}" 可以且只可以匹配"be",“bee”, “beee” |
| | 相当于"或",表示匹配由 |
$n | n是个数字,这个是替换时使用括号( )将匹配的patter分割成了几个元素,然后在替换的patter里面使用,类似于变量。如果查找patter是"(w+)(s)(w+)",那么$1就是(w+),$2是(s),$3是(w+),替换patter是$3$2$1,那么替换结果就是(w+)(s)(w+)。假设匹配到的是"one two",那么$1,$2,$3分别为"one", " “, “two”,替换后的结果为"two one”. |
正则表达式除了匹配字符外,还可以对匹配的上下文做要求,比如要求匹配必须从一行的开头开始,感觉用的不是特别多,需要的请参照本文开头给出的链接。