正则表达式
正则表达式
功能
搜索 替换
总表 
调试工具
知识点
匹配字符
匹配任意字符 .
. 可以匹配任意单个字符,除了行结束符。 注意,这个在不同流派中是不一样的:
-
ECMAScript(JavaScript),行结束符为\n,\r
-
Python,行结束符为\n
匹配特殊字符
元字符(Metacharacter) 元字符,表示这个字符有特殊含义,而不是字符本身。 \,是一个元字符,表示对其后的字符进行转义。 \s,是一个元字符,表示空白字符。
配置多个字符中的一个-[]
使用元字符[和],来定义一个字符集合。[和]不匹配任何字符,[]仅匹配一个字符,即只占一个位置。配置的字符为这个集合中的任意一个。 示例: [ns],表示匹配n或者匹配s。
特殊的集合
[0-9] | ||
[a-z] | ||
[A-Z] | ||
[A-z] | ||
[A-Za-z0-9] |
集合取非 用元字符^, 表示对一个字符集合进行取非。 注意:^仅在集合中表示取非,单独使用时,可表示匹配字符串开头。
匹配空白字符
[\b] | 回退 | 为什么带[]? |
\f | 换页符 | |
\n | 换行符 | |
\r | 回车符 | |
\t | 制表符 | Tab键 |
\v | 垂直制表符 |
组合使用 windows中,使用\r\n匹配“回车+换行”,把这个用作文本行的结束。 匹配空白行:
-
windows, \r\n\r\n
-
linux, \n\n
-
mac, \r\r
Fun: 回车和换行的区别:https://baijiahao.baidu.com/s?id=1732246005673869826&wfr=spider&for=pc
匹配特定字符
\d | 任何一个数字 | [0-9] |
\D | 任何一个非数字 | [^0-9] |
\w | 任何一个字母(大小写均可)/数字/下划线 | [a-zA-Z0-9_] |
\W | \w取反 | [^a-zA-Z0-9_] |
\s | 任何空白字符 | [\f\n\r\t\v] |
§ | 任何非空白字符 | [^\f\n\r\t\v] |
\x | 匹配十六进制 | |
\0 | 匹配八进制 |
重复匹配
+ | 一个或多个 | |
* | 零个或多个 | |
? | 零个或一个 | |
{N} | 匹配N次 | |
{N,M} | 匹配N到M次 | |
{N,} | 匹配至少N次 |
位置匹配
\b | 单词开头或者结尾 | |
\B | \b取反,不匹配边界 | |
^ | 字符串开头 | |
$ | 字符串结尾 | |
(?m) | 分行模式 |
分行模式(?m)
在分行匹配模式下,^不仅匹配正常的字符串开头,还将匹配行分隔符(换行符)后面的开始位置;$不仅匹配正常的字符串结尾,还将匹配行分隔符(换行符)后面的结束位置。 注:有很多正则表达式,不支持(?m)
子表达式
元字符(和), 表示子表达式。 注意:替换时符号不同:
-
python, \1
-
javascript, $1
回溯、向前查找、条件表达式
参考
本来想参考官方介绍,但是始终没有找到,只找到了Virutal Studio的说明。 https://learn.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference https://learn.microsoft.com/en-us/dotnet/standard/base-types/regular-expressions
在VSCODE的task doc中
Tip: We have found the RegEx101 playground, which has an ECMAScript (JavaScript) flavor, to be a great way to develop and test regular expressions.