正则表达式学习--元字符的使用(二)

2014-11-24 09:04:25 · 作者: · 浏览: 3
写字母,等价于[a-z]

[:print:] 任何一个可打印字符

[:punct:] 既不属于[:alnum:]和[:cntrl:]的任何一个字符

[:space:] 任何一个空白字符,包括空格,等价于[^\f\n\r\t\v]

[:upper:] 任何一个大写字母,等价于[A-Z]

[:xdigit:] 任何一个十六进制数字,等价于[a-fA-F0-9]

POSIX字符和之前见过的元字符不太一样,我们来看一个前面利用正则表达式来匹配网页中的颜色的例子:

文本:测试

正则表达式:#[[:xdigit:]] [[:xdigit:]] [[:xdigit:]] [[:xdigit:]] [[:xdigit:]] [[:xdigit:]]

结果:测试

注意:这里使用的模式以[[开头、以]]结束,这是使用POSIX字符类所必须的,POSIX字符必须括在[:和:]之间,外层[和]字符用来定义一个集合,内层的[和]字符是POSIX字符类本身的组成部分。

在java中的POSIX字符表示有所不同,不是包括在[:和:]之间,而是以\p开头,包括在{和}之间,且大小写有区别,同时增加了\p{ASCII},如下所示:

\p{Alnum} 字母数字字符:[\p{Alpha}\p{Digit}]

\p{Alpha} 字母字符:[\p{Lower}\p{Upper}]

\p{ASCII} 所有 ASCII:[\x00-\x7F]

\p{Blank} 空格或制表符:[ \t]

\p{Cntrl} 控制字符:[\x00-\x1F\x7F]

\p{Digit} 十进制数字:[0-9]

\p{Graph} 可见字符:[\p{Alnum}\p{Punct}]

\p{Lower} 小写字母字符:[a-z]

\p{Print} 可打印字符:[\p{Graph}\x20]

\p{Punct} 标点符号:!"#$%&'()*+,-./:;<=> @[\]^_`{|}~

\p{Space} 空白字符:[ \t\n\x0B\f\r]

\p{Upper} 大写字母字符:[A-Z]

\p{XDigit} 十六进制数字:[0-9a-fA-F]

作者:zhanghu198901