Regex

引言

正则表达式(Regular Expression)是使用单个字符串来描述、匹配一系列符合某个句法规则的一串字符。我在之前的学习工作中,遇到正则表达式,往往都是直接搜索相关问题的结果,或者尝试用其他方法解决。也尝试过学习相关的规则,但是过一段时间不用之后,往往会生疏乃至忘记。这篇文章尝试着理解并消化正则表达式相关的知识。

字符与位置

正则表达式是匹配模式,不是匹配字符,就是匹配位置

匹配字符

特殊字符

正则表达式除了匹配常规的 a-z,A-Z,0-9 等字符外,还存在着一些特殊字符,如下所示

字符 记忆方法
\t tab
\v vertical tab
\f form feed
\r return
\n new line

字符组

虽然叫字符组,但是只匹配字符组中的某个字符,比如[abc]只匹配 a,b,c 中的一个。对应的如果不想匹配某几个字符,则需要在字符组最前面加上**脱字符(^),形如[^abc],则表示匹配除 a,b,c 之外的其他字符。使用连字符(-)**则可以匹配连续的一段字符,形如 a-z,0-9。另外有如下相关的简写形式来表示对应的字符区间。

正则表达式 匹配区间 记忆方法
\d [0-9] digit
\D [^0-9] opposite to \d
\w [0-9a-zA-Z_] word**(注意有下划线_)**
\W [^0-9a-za-z_] opposite to \w
\s [\t\v\n\r\f] space character
\S [^\t\v\n\r\f] opposite to \s
. [^\n\r\u2028\u2029] 匹配除换行符之外的所有字符
Read more