正则表达式

正则表达式收集整理


字符 说明 示例
\ 转义符 \n匹配换行符。\\匹配\\(匹配(
^ 匹配输入字符串开始的位置  
$ 匹配输入字符串结尾的位置  
* 零次或多次匹配前面的字符或子表达式 zo* 匹配zzoo;
* 等效于 {0,}
+ 一次或多次匹配前面的字符或子表达式 zo+ 匹配zozoo,但与z不匹配;
+ 等效于 {1,}
? 零次或一次匹配前面的字符或子表达式 do(es)?匹配dodoes;
? 等效于 {0,1}
{n} n 是非负整数, 正好匹配 n 次 o{2}Bob中的o不匹配,但与food中的两个o匹配
{n,} 至少匹配 n 次 o{2,}不匹配Bob中的o, 但匹配foooood中的所有o;
o{1,}等效于o+; o{0,}等效于o*
{n,m} n <= m, 匹配至少 n 次,至多 m 次 o{1,3}匹配fooooood中的头三个 o;
o{0,1} 等效于 o?;
注意:不能将空格插入逗号和数字之间
? 非贪心匹配, 匹配尽可能短的字符串;
常跟在*、+、?、{n}、{n,}、{n,m}等之后
默认是“贪心的”, 匹配可能长的字符串
在字符串oooo中,o+?只匹配单个o,而o+匹配所有o
. 匹配除”\n”之外的任何单个字符 若要匹配包括”\n”在内的任意字符,请使用[\s\S]之类的模式
(pattern) 匹配pattern并捕获该匹配的子表达式
可以使用 $0$9 获取匹配结果
若要匹配括号字符 (), 请使用\(\)
x|y 匹配 xy z|food 匹配zfood(z|f)ood 匹配zoodfood
[xyz] 字符集. 匹配包含的任一字符 [abc]匹配plain中的a
[^xyz] 反向字符集. 匹配未包含的任何单个字符 [^abc]匹配plain中的p
[a-z] 字符范围. 匹配指定范围内的任何字符 [a-z]匹配az范围内的任何小写字母
[^a-z] 反向字符范围. 匹配不在指定范围内的任何字符 [^a-z]匹配不在az范围内的任何字符
[\b] 匹配一个字边界, 即字与空格间的位置 er\b匹配never中的er, 但不匹配verb中的er
[\B] 匹配非字边界  
[\d] 数字字符 等效于 [0-9]
[\D] 非数字字符 等效于 [^0-9]
[\f] 换页符 等效于 \x0c\cL
[\n] 换行符 等效于 \x0a\cJ
[\r] 回车符 等效于 \x0d\cM
[\s] 匹配任何空白字符,包括空格、制表符、换页符等 等效于 [ \f\n\r\t\v]
[\S] 非空白字符 等效于 [^ \f\n\r\t\v]
[\t] 制表符(TAB) 等效于 \x09\cI
[\v] 垂直制表符 等效于 \x09\cI
[\w] 普通字符 等效于 [A-Za-z0-9_](注意有个_)
[\W] 非普通字符 等效于 [^A-Za-z0-9_]
[\cx] 匹配 x 表示的控制字符 \cM 匹配 Control-M回车符
x 的值必须在 A-Za-z 之间, 否则认为 c 就是c字符本身
[\xn] 匹配 n,此处的 n 是一个十六进制转义码
十六进制转义码必须正好是两位数长
\x41匹配字母A, \x041\x04&1等效
[\un] 匹配 n,此处的 n 以四位十六进制数表示的 Unicode 字符 \u00A9匹配版权符号 (©)