表达式 | 说明 | 举例 |
---|
[abc] | 表示“a”或“b”或“c” | |
[0-9] | 表示0~9中任意一个数字,等价于[0123456789] | |
[\u4e00-\u9fa5] | 表示任意一个汉字 | |
[^a1<] | 表示除“a”、“1”、“<”外的其它任意一个字符 | |
[^a-z] | 表示除小写字母外的任意一个字符 | |
\d | 任意一个数字,相当于[0-9],即0~9 中的任意一个 | |
\w | 任意一个字母或数字或下划线,相当于[a-zA-Z0-9_] | |
\s | 任意空白字符,相当于[ \r\n\f\t\v] | |
\D | 任意一个非数字字符,\d取反,相当于[^0-9] | |
\W | \w取反,相当于[^a-zA-Z0-9_] | |
\S | 任意非空白字符,\s取反,相当于[^ \r\n\f\t\v] | |
. | 匹配除了换行符 \n 以外的任意一个字符 | |
^ | 匹配字符串开始的位置,不匹配任何字符 | ^a表示匹配开头是a的E:abc匹配结果是a |
$ | 匹配字符串结束的位置,不匹配任何字符 | E:\d$匹配123匹配结果是3,若abc结果是失败的 |
\b | 匹配单词边界,不匹配任何字符 | E:Windows 2003匹配会得到4处空结果 |
\r,\n | 回车和换行 | |
\ | 匹配“\”本身 | |
^,$,. | 分别匹配“^”、“$”和“.” | |
{m} | 表达式匹配m次 | “\d{3}”相当于“\d\d\d ” ,“(abc){2}”相当于“abcabc” |
{m,n} | 表达式匹配最少m次,最多n次 | “\d{2,3}”可以匹配“12”或“321”等2到3位的数字 |
{m,} | 表达式至少匹配m次 | “[a-z]{8,}”表示至少8位以上的字母 |
? | 表达式匹配0次或1次,相当于{0,1} | “ab?”可以匹配“a”或“ab” |
* | 表达式匹配0次或任意多次,相当于{0,} | “<[^ >]>”中“[^>]”表示0个或任意多个不是“>”的字符 |
+ | 表达式匹配1次或意多次,至少1次,相当于{1,} | “\d\s+\d”表示两个数字中间,至少有一个以上的空白字符 |
/ | 多个子表达式之间取“或”的关系 | “^aa/b
”
在
匹
配
“
c
c
c
b
”
时
,
是
可
以
匹
配
成
功
的
,
匹
配
的
结
果
是
“
b
”
,
因
为
这
个
表
达
式
表
示
匹
配
“
a
a
”
或
“
b
”在匹配“cccb”时,是可以匹配成功的,匹配的结果是“b”,因为这个表达式表示匹配“^aa”或“b
”在匹配“cccb”时,是可以匹配成功的,匹配的结果是“b”,因为这个表达式表示匹配“aa”或“b”,而“b$”在匹配“cccb ”时是可以匹配成功的 |
进阶
**在表达式 (A)(B( C)) 中有四个这样的组
0 | (A)(B( C)) |
---|
1 | (A) |
2 | (B( C)) |
3 | © |
所以 < title>.< /title>可以写成 <(title)>.</\1>
表达式 | 说明 | 举例 |
---|
(Expression) | 普通捕获组,将子表达式Expression匹配的内容保存到以数字编号的组里 | \d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}可以转为\d{1,3}(.\d{1,3}){3} |
(? Expression) | 命名捕获组,将子表达式Expression匹配的内容保存到以name命名的组里 | \d{1,3}(.\d{1,3}){3}可以写成(\d{1,3})(.\1){3} |
(?:Expression) | 进行子表达式Expression的匹配,并将匹配内容保存到最终的整个表达式的区配结果中,但Expression匹配的内容不单独保存到一个组内 | |
\1,\2 | 对序号为1和2的捕获组的反向引用 | |
\k | 对命名为name的捕获组的反向引用 | “(a/b)\1”在匹配“abaa”时,匹配成功,匹配到的结果是“aa”。“(a |