在使用正则表达式时,如果需要匹配不在字符类指定范围内的字符时,可以使用反义规则。以下正则表达式匹配字符a之后不是字符串b的字符串。
a[^b] (34)
以下正则表达式匹配被尖括号括起来的、以字符串“asp”开头的、倒数第二个字符不能为字符“>”的、长度为6的任意字符串。
<asp[^>]> (35)
其实,在2.1.3和2.2小节中已经使用了反义的表达式,如/W、/S、/D、[^aeiou]等。常用的反义表达式如表2-4所示。
表2-4 常用的反义表达式
字符或表达式 |
说明 |
/W |
匹配任意的非单词字符(包括字母、数字、下划线和汉字)。 |
/S |
匹配任意的非空白字符。 |
/D |
匹配任意的非数字字符。 |
/B |
匹配不是单词开头和结束的任何位置。 |
[^a] |
匹配除字符a之外的任何字符。 |
[^aeiou] |
匹配除字符集合(aeiou)中的之外的任何字符。 |
