正则表达式 |
描述 |
示例 |
^ |
行首标记 |
^begin 匹配以begin起始的行 |
$ |
行尾标记 |
end$ 匹配以end结尾的行 |
. |
匹配任意一个字符 |
dot. 可以匹配dota,但是不能匹配dotted,它只能匹配单个字符 |
[] |
匹配包含在[字符]之中的任意一个字符 |
coo[kl] 匹配cook或cool |
[^] |
匹配除[^字符]之外的任意一个字符 |
9[^01] 可以匹配92,93等,但不匹配90和91 |
[-] |
匹配[]中指定范围内的任意一个字符 |
[1-8] 匹配从1到8的任意一个数字 |
? |
至多匹配?之前的项1次 |
colou?r 匹配color或colour |
+ |
至少匹配+之前的项1次 |
ipad+ 匹配ipad或ipadd等 |
* |
匹配之前的项任意(0或更多)次 |
co*l 匹配cl、col、cooooool等。特殊: .* 可以匹配任意次数的不包含换行的字符。 |
() |
创建一个用于匹配的字符串 |
max(tri)? 匹配max或者maxtri |
{n} |
匹配之前的项n次 |
[0-9]{2} 匹配任意一个两位数,[0,9]{2} 可以扩展为[0-9][0-9][0-9] |
{n,} |
至少匹配之前的项n次 |
[0-9]{2,}匹配任意一个两位或更多位数字 |
{n,m} |
匹配之前的项至少n次至多m次 |
[0-9]{2,5} 匹配任意一个2位、3位、4位、5位数等 |
| |
交替一一匹配|两边的任意一项 |
Oct (1st | 2nd) 匹配Oct 1st或Oct 2nd |
\ |
转义符,可以将上面介绍的特殊字符进行转义 |
a\.b 匹配a.b,通过在.之前加上\前缀,从而忽略了.的特殊意义 |
POSIX字符类是一个形如[:...:]的特殊元序列,它可以用于匹配特定的字符范围。POSIX字符类如下表:
正则表达式 |
描述 |
[:alnum:] |
字母与数字字符 |
[:alpha:] |
字母字符(包括大写字母与小写字母) |
[:blank:] |
空格与制表符 |
[:digit:] |
数字字符 |
[:lower:] |
小写字母 |
[:upper:] |
大写字母 |
[:punct:] |
标点符号 |
[:space:] |
包括换行符,回车等在内的所有空白字符 |
元字符是一种Perl风格的正则表达式,只有一部分文本处理工具支持它,并不是所有的工具都支持下表中所列字符,但是之前介绍的正则表达式和字符类都是被广泛支持的:
正则表达式 |
描述 |
示例 |
\b |
单词边界 |
\bread\b 匹配read |
\B |
非单词边界 |
read\B 不匹配read可匹配readding |
\d |
单个数字字符 |
b\db 匹配b2b、b3b等 |
\D |
单个非数字字符 |
b\Db 匹配bab等 |
\w |
单个单词字符(字母、数字、下划线、汉字) |
\w 匹配1、a、_等,但不匹配&、#、? |
\W |
单个非单词字符 |
\W 匹配&、$、*、#等 |
\n |
单次换行符 |
\n 匹配一个新行 |
\s |
单个空白字符 |
x\sx 匹配x x(中间有空格) |
\S |
单个非空白字符 |
x\Sx 匹配xkx等 |
\r |
单次回车字符 |
\r 匹配回车 |