单字符匹配:
匹配单字符:
"." : 匹配一个任意字符
a.b :
"."可以匹配为"acb"或"a&b"等,
不能匹配"ac","a&&c",因为"."匹配且仅限一个字符
匹配数字:
"\d" : 匹配0~9的数字
0\d :
"\d"可以匹配为"01"或"03"等,
不能匹配"0A","0033",因为"\d"匹配且仅限单个数字字符
匹配非数字:
"\D" : 匹配一个非数字
0\D :
"\D"可以匹配为"0A"或"0#"等,
不能匹配"01","03",因为"\D"匹配且仅限单个非数字字符
匹配常用字符:
"\w" : 匹配一个字母、数字或下划线
0\w :
"\w"可以匹配为"0a"或"01"或"0_"等,
不能匹配"0#","0 (空格)",因为"\D"匹配且仅限一个字母、数字或下划线
匹配空格字符:
"\s" : 匹配一个空格字符
注意:空格字符不但包括空格,还包括tab字符(在Java中用\t表示)
a\sc :
"\s"可以匹配为"a c"或"a (\t)c"等,
不能匹配"ac","abc","a0b",因为"\s"匹配且仅限一个空格字符
多字符匹配:
匹配任意数量字符:
"*" : 匹配任意个字符,包括0个字符
a\d* :
"\d*"可以匹配为"a"或"a0"或"a00"等
因为"*"匹配任意个字符,包括0个字符
匹配至少一个字符:
"+" : 匹配至少一个字符
a\d+ :
"\d+"可以匹配为"a0"或"a00"等,
不能匹配"a",因为"+"匹配至少一个字符
匹配零个或一个字符:
"?" : 匹配零个或一个字符
a\d? :
"\d?"可以匹配为"a"或"a0"等,
不能匹配"a00"等数,因为"+"匹配零个或一个字符
匹配指定数量:
"{n}" : 匹配n个字符
a\d{4} :
"\d{4}"可以匹配为"a0000"或"a1111"等,
不能匹配"a00"等数,因为"{n}" 匹配n个字符
匹配指定区间数量:
"{n,m}" : 匹配指定区间数量
a\d{2,4} :
"\d{2,4}"可以匹配为"a00"或"a000"或"a0000"等,
不能匹配"a0","a00000"等数,因为"{n,m}" 匹配n到m个字符
注意:"{n,}"可以匹配至少n个字符
复杂匹配:
匹配开头结尾:
"^" : 表示开头,"$" : 表示结尾
^a\d{2}$ :可以匹配"a00"、"a11"
匹配指定范围:
[...] : 可以匹配范围内的字符
[0-9] :字符0~9,[a-f]:字符a~f,[A-F]:字符A~F
或规则匹配:
"|" : 匹配左右两个字符
AB|CD : 匹配AB或CD
使用括号:
"()" :提取公共部分,匹配子规则
a(0|1|2): 匹配字符串 a0,a1,a2