正则表示式这个东东,不常用,但是每过一段时间肯定会用到。我这个小脑袋又记得不长久,所以写点东西,下次查询使用。

何为正则表达式?

正则表达式就是一个用于匹配字符串的模板。创建正则表达式就是创建一个特殊的字符串,可以匹配一批的字符串。

正则表达式的组成

正则表达式的合法字符

字符说明
x字符x(字符x代表任何合法的字符)
0mnm八进制数0mnm所表示的字符
xhh十六进制数0xhh所表示的字符
uhhhh十六进制数0xhhhh所表示的Unicode字符
t制表符('u0009')
n新行(换行)符('u000A')
r回车符('u000D')
f换页符('u000C')
a报警(bell)符('u0007')
eEscape符('u001B')
cxx对应的控制符。例如,cM匹配Ctrl+M。x的必须为A-Z或者a-z之一

除此以外,正则表达式还有一些特殊字符,这些字符在正则表达式中有特殊的用途。如果需要匹配这些特殊的字符,必须先将这些字符转义。转义的方法是在需要转义的字符前加一个\

正则表达式的特殊字符

特殊字符说明
$匹配一行的结尾
^匹配一行的开头
()标记子表达式的开始和结束位置
[]用于确定中括号表达式的开始和结束位置
{}用于标记前面子表达式的出现频度
*指定前面子表达式可以实现零次或多次
+指定前面子表达式可以出现一次或多次
?指定前面子表达式可以出现零次或一次
.匹配除换行符n之外的任意单字符
\用于转义下一个字符,或指定八进制、十六进制字符
\ 指定两项之间仍选一项

正则表达式中的预定义字符

预定义字符说明
.可以匹配任意字符
d匹配0-9的所有数字
D匹配非数字
s匹配所有的空白字符,包括空格、制表符、回车符、换页符、换行符等
S匹配所有的非空白字符
w匹配所有的单词字符,包括0-9所有数字、26个英文字母和下划线(_)
W匹配所有的非单词字符
记忆技巧:d代表digit,s代表space,w代表word,大写代表匹配与之相反的字符。

方括号表达式

表达式说明
枚举[abc],表示a、b、c中的任意一个字符
范围[a-f],表示a-f之间的任意一个字符
取反1,表示除了a、b、c之外的任意字符
与运算:&&[a-c&&[b-d]]表示取a-c和b-d的交集,代表b、c
并运算与枚举类似,[a-c[d-d]],代表[a-d]

  1. abc
最后修改:2021 年 05 月 25 日 10 : 23 PM