访问量: 9 次浏览
正则表达式排除字符,字符集合通常用来指定一组必须匹配其中之一的字符,但是在某些场合,我们需要反过来做,既指定一组不需要匹配的字符。
换句话说,就是排除字符集合里指定的那些字符。
前面介绍了特殊字符,任意字符,本文介绍由 [^] 组合而成的字符集合,用以排除指定字符集合。
不需要逐个列出你要匹配的字符,可以使用元字符 ^ 来排除某个字符集合,如下所示:
sales1.xls
orders3.xls
sales2.xls
sales3.xls
apac1.xls
europe2.xls
geek-docs.com.xls
sam.xls
na1.xls
na2.xls
sa1.xls
ca1.xls
执行正则表达式 [ns]a[^0-9]\.xls ,输出结果如下:

[0-9] 只匹配数字,而这里 [^0-9] 匹配的是任何不是数字的字符,也就是说 [ns]a[^0-9]\.xls 将匹配 sam.xls ,
但不匹配 nal.xls , na2.xls 和 sal.xls 。
同样道理,我们使用 [^a-z] 匹配任何不是小写字母 a-z 的字符,示例如下:
sales1.xls
orders3.xls
sales2.xls
sales3.xls
apac1.xls
europe2.xls
geek-docs.com.xls
sam.xls
na1.xls
na2.xls
sa1.xls
ca1.xls
执行正则表达式 [ns]a[^a-z]\.xls ,输出结果如下:

[ns]a[^a-z]\.xls 将匹配 nal.xls , na2.xls 和 sal.xls ,但是不匹配 sam.xls 。