1、匹配多个字符中的某一个
[和] 字符集合的匹配结果是能够与该集合里的任意一个成员相匹配的文本。
2、字符区间
[0-9]模式的功能与[0123456789]完全等价
字符区间并不限于数字,以下这些都是合法的字符区间:
A-Z ,匹配从A到Z的所有大写字母
a-z ,匹配从a到z的所有小写字母
A-F ,匹配从A到F的所有大写字母
A-z ,匹配从ASCII 字符A到ASCII字符z 的所有字母。这个模式一般不常用,因为它还包含着[和^等在ASCII字符表里排列在z和a之间的字符。
字符区间的首、尾字符可以是ASCII字符表里的任意字符。但在实际工作中,最常用的字符区间还是数字字符区间和字母字符区间。
但是一定要注意:区间的尾字符小于它的首字符,(例如[3-1]),这种区间是没有意义的,而且往往会让整个模式失效。
-(连字符)是一个特殊的元字符,作为元字符它只能用在[和]之间,在字符集合以外的地方,- 只是一个普通字符,只能与 - 本身匹配,因此在正则表达式里,- 字符不需要被转义
匹配RGB颜色的正则表达式:
#[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]
可以匹配:#FFFFFF,#336633
3、取非匹配:用元字符^对一个字符集合进去取非匹配,这里操作数是字符集合。
除了该字符集合里的字符,其他字符都可以被匹配。
sales1.xls sam.xls sa1.xls na1.xls na2.xls ca1.xls 正则表达式:[ns]a[^0-9].xls 匹配结果:sam.xls
注意,^的效果将作用于给定字符集合里的所有字符或字符区间,而不是仅限于紧跟在^字符后面的哪一个字符或字符区间。