1、notepad 正则表达式
2、VScode正则表达式
3、pycharm正则表达式
梳理常用工具的正则表达式使用,逐步增加其他工具
1、notepad 正则表达式
\ | \ 转义字符 如:要使用 “\” 本身, 应该使用\\” |
\t | \tTab制表符注:支持扩展和正则表达式 |
\r | \r回车符CR 注:扩展支持,正则表达式不支持 |
\n | \n换行符LF 注:扩展支持,正则表达式不支持 |
. | .匹配任何字符 |
^ | ^其右侧的表达式与行首相匹配。^A匹配以“A”开头的行 |
$ | $其左边的表达式被匹配在行尾。如:e$匹配以“e”结尾的行 |
| | |或运算符,匹配表达式左右字符串。ab|bc匹配“ab”或“bc” |
[] | []匹配列表中的任何单个字符。[ab]匹配“a”或“b |
[^] | [^]匹配列表以外的任何单个字符。[^ab]匹配“a”和“b以外的单个字符;[^0-9]匹配任何单个非数字符 |
* | *左边的字符随意匹配(0次或多次)。be*匹配“b”,“be”或“bee” |
左边的字符至少匹配一次(一次或多次)。be 匹配“be”或“bee但不匹配b” | |
? | ?左边的字符匹配0次或1次。be?匹配“b”或“be”,但不匹配“bee”;\r?\n匹配行结尾符 |
() | ()影响表达匹配的顺序(类似于C 小括号会影响表达式操作顺序),并用作表达式分组标记(标记从1开始),如:([a-z]bc)smn\1匹配“tbcsmntbc”; |
{} | {}指定前面的字符或分组的出现次数如:abc{3}匹配abccc;a(bc){2}匹配abcbc |
\d | \d匹配数字字符。等价为:[0-9] |
\D | \D\d取反,匹配非数字字符。等价为:[^0-9] |
\s | \s 匹配任意单个空白字符:包括空格、制表符等(注:不包括换车符和换行符)。等价于:[ \t] |
\S | \S \s取反的任意单个字符。 |
\w | \w 匹配包括下划线的任意单个字符。等价于:[A-Za-z0-9_] |
\W | \W \w取反的任意单个字符。等价于:[^A-Za-z0-9_] |
\b | \b 匹配单词起始处或结尾处 如:\bin匹配int,但不匹配sing |
123abcfg
abc abcd
替换成:
123hello hello hello
123abcfg abc abcd
替换成:
123@abcfg@ @abc@ @abcd@
str[1]abc[991] str[2]abc[992] str[11]abc[993] str[222]abc[996]
替换成
god[991] god[992] god[993] god[996]
删除所有空行
step1:a. 选择正则表达式 b. 查找串:^[ \t]*$ 替换串:空
step2:a. 选择扩展(\n,\r,\t,\0,\x...) b. 查找串:\r\n\r\n 替换串:\r\n 注:多次点击替换,直到没有可替换的字串
2、VScode正则表达式
本文只列举和翻译了常用的一些,完整内容请参照微软官方文档
注意事项:在VSCode中使用时,要先把通配符开关打开(开关是查找输入框右边的".*"符号)
\t | \t Tab制表符 |
\r | \r 回车符CR |
\n | \n 换行符LF |
\ | 特殊符号转义,如"*" ,转义后匹配的是字符"*", “(” 匹配的是括号"(" |
. | 匹配任意单个字符(除了\n) |
[] | 匹配[ ]中的任意字符,如[ae],字符a和字符e均匹配 |
[^] | 匹配不在[ ]中的任意字符,如[^ae]除了a和e,其他字符都匹配 |
[-] | 匹配在[ ]之间的任意字符,如[a-x],就是匹配a和x之间的所有字符(包括a和x) |
| | 相当于"或",表示匹配由 |
* | 将前面的元素匹配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” |
\d | 匹配数字字符,如"1",“4”,"9"等 |
\D | 和\d相反,匹配除了数字字符外的其他字符 |
\s | 匹配空格 |
\S | 和\s相反,匹配非空格 |
\w | 匹配所有单词字符(如"a",“3”,“E”,但不匹配"?","."等) |
\W | 和\w相反,匹配所有非单词字符 |
$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”. |
\uxxxx | 匹配Unicode编码为xxx的字符,如\u0020匹配空格,这个符号可以用来帮助匹配中文,后面说 |
[\u4e00-\u9fa5] | 利用区间和\u转义符号,匹配中文(该区间包含2万个汉字),可以当做中文版的\w使用 |
3、pycharm正则表达式
\t | 匹配制表符。 |
\r | 匹配回车符。 |
\n | 匹配换行符。 |
\v | 匹配垂直制表符。 |
\f | 匹配换页字符。 |
\ | 特殊符号转义,如"*" ,转义后匹配的是字符"*", “(” 匹配的是括号"(" |
^ | 匹配输入的开始。 |
$ | 匹配输入的结尾。 |
* | 匹配前一个字符零次或多次 |
+ | 匹配前面的字符一次或多次 |
? | 匹配前一个字符零或一次 |
. | 匹配除换行符以外的任何单个字符。 |
(子表达) | 匹配子表达式并记住匹配项。如果将正则表达式的一部分括在括号中,则该正则表达式的该部分将分组在一起。因此,可以将正则表达式运算符应用于整个组。 如果需要在同一正则表达式中使用匹配的子字符串,则可以使用backreference \num在哪里检索它num = 1..n。 如果您需要在当前正则表达式之外的某个地方引用匹配的子字符串(例如,在另一个正则表达式中作为替换字符串),则可以使用美元符号$numwhere 来检索它num = 1..n。 如果需要在一个子表达式中包含括号字符,请使用\(或\)。 |
x|y | 匹配x或y。例如,z|wood 匹配z或wood。(z|w)oo匹配动物园或木头。 |
{ n} | n是一个非负整数。精确匹配n 次 |
{ n,} | n是一个非负整数。至少匹配n 次 |
{ n,m } | m和n是非负整数。匹配至少n和至多 m倍。 |
[y] | 字符集。匹配其中任何一个字符。例如,[abc]将a与plain匹配。 |
[^y ] | 否定字符集。匹配任何未包含的字符。例如,[^abc]该匹配p在平原。 |
[ z ] | 字符范围。匹配指定范围内的任何字符。例如,“ [az]”匹配a到z范围内的任何小写字母字符。 |
[^z ] | 负范围字符。匹配任何不在指定范围内的字符。例如,[^m-z]匹配不在m到z范围内的任何字符。 |
\b | 匹配单词边界,即单词和空格之间的位置。例如,er\b相匹配的ER中从来没有,但不是ER的动词。 |
\B | 匹配非单词边界。ea*r\B比赛耳中 从未年初。 |
\d | 匹配数字字符。等同于[0-9]。 |
\D | 匹配非数字字符。等同于[^0-9]。 |
\s | 匹配任何空格,包括空格,制表符,换页等。等同于[ \f\n\r\t\v]。 |
\S | 匹配任何非空白字符。等同于[^ \f\n\r\t\v]。 |
\w | 匹配任何单词字符,包括下划线。等同于[A-Za-z0 -9_]。在搜索字段中使用它。 |
\W | 匹配任何非单词字符。等同于[^A-Za-z0-9_]。 |
\l | 将下一个字符的大小写更改为小写。在替换字段中使用这种类型的正则表达式 。 |
\L | 将所有后续字符的大小写更改为\E小写。在替换字段中使用这种类型的正则表达式 。 |
\u | 将下一个字符的大小写更改为大写。在替换字段中使用这种类型的正则表达式 。 |
\U | 将所有后续字符的大小写更改为\E大写。在替换字段中使用这种类型的正则表达式。 |
\num | 匹配num,其中num是一个正整数,表示对已记住的匹配的引用。例如,(.)\1匹配两个连续的相同字符。 |
\on | 匹配n,其中n是八进制转义值。八进制转义值的长度应为1、2或3位数字。 |
\xn | 匹配n,其中n是十六进制转义值。十六进制转义值必须恰好是两位数。 |
\$ | 查找一个$字符。 |
\\$ | 在搜索字段中输入的此正则表达式表示您正在尝试\ 在行尾查找字符。 |