元字符:
字符 |
说明 |
^ |
匹配行的开始位置 |
$ |
匹配行的结束位置 |
b |
匹配单词的开始或结束位置 |
. |
匹配除换行符号之外的任意字符 |
w |
匹配单词字符(包括字母、数字、下划线和汉字) |
w |
匹配任意的非单词字符(包括字母、数字、下划线和汉字) |
s |
匹配任意的空白字符,如空格、制表符、换行符等 |
s |
匹配非空白字符 |
d |
匹配任意的数字 |
d |
匹配非任意的数字 |
常用字符集:
字符 |
说明 |
. |
匹配除换行符号之外的任意字符 |
w |
匹配单词字符(包括字母、数字、下划线和汉字) |
w |
匹配任意的非单词字符(包括字母、数字、下划线和汉字) |
s |
匹配任意的空白字符,如空格、制表符、换行符等 |
s |
匹配非空白字符 |
d |
匹配任意的数字 |
d |
匹配非任意的数字 |
[abcd] |
匹配字符集合中的任何字符 |
[^abcd] |
匹配字符集合之外的任何字符 |
[0-9a-za-z] |
匹配任何数字、字母(大写和小写字母)和下划线,等同于 w |
[^0-9a-za-z] |
匹配除数字、字母(大写和小写字母)和下划线,等同于 w |
p{name} |
匹配{name}指定的命名字符类中的任何字符 |
p{name} |
匹配{name}指定的命名字符类外的任何字符 |
常用转义字符:
字符 |
说明 |
a |
响铃警报u0007 |
b |
在正则表达式中,表示单词的边界;如果在字符类中,则表示退格符u0008 |
t |
制表符u0009 |
r |
回车符u000d |
v |
垂直制表符u000b |
f |
换页符u000c |
n |
换行符u000a |
e |
回退符u001b |
40 |
将ascii字符匹配为8进制数 |
x20 |
使用十六进制表示形式与ascii字符匹配 |
cc |
ascii控制字符,如ctrl+c |
u0020 |
使用十六进制表示形式与unicode字符匹配 |
常用限定字符:
字符 |
说明 |
{n} |
重复n次 |
{n,} |
重复至少n次 |
{n,m} |
重复至少n次,最多m次 |
* |
重复至少0次,等同于{0,} |
+ |
重复至少1次,等同于{1,} |
? |
重复0次或1次,等同于{0,1} |
*? |
尽可能少的使用重复的第一个匹配符 |
+? |
尽可能少地使用重复但至少使用一次 |
?? |
使用0次重复或一次重复 |
{n}? |
等同于{n} |
{n,}? |
尽可能地使用重复但至少使用n次 |
{n,m}? |
介于n次和m次之间、尽可能少地使用重复 |
替换字符:|
例子:国内部分地区的三种固定电话号码
0d{2}-d{8}|0d{3}-d{7}|0d{3}-d{8}
分组字符:( )
例子:匹配简单的ip地址
(d{1,3}.){3}d{1,3}