2.元字符[^]. 你可以用补集来匹配不在区间范围内的字符。其做法是把"^“作为类别的首个字符;其它地方的”^"只会简单匹配 "^“字符本身。例如,[^5] 将匹配除 “5” 之外的任意字符。同时,在外,元字符^表示匹配字符串的开始,如”^ab+"表示以ab开头的字符串。
举例验证,
>>> m=re.search("^ab+","asdfabbbb")
>>> print m
None
>>> m=re.search("ab+","asdfabbbb")
>>> print m
<_sre.SRE_Match object at 0x011B1988>
>>> print m.group()
abbbb
上例不能用re.match,因为match匹配字符串的开始,我们无法验证元字符"^"是否代表字符串的开始位置。
>>> m=re.match("^ab+","asdfabbbb")
>>> print m
None
>>> m=re.match("ab+","asdfabbbb")
>>> print m
None
#验证在元字符中,"^"在不同位置所代表的意义。
>>> re.search("[^abc]","abcd") #"^"在首字符表示取反,即abc之外的任意字符。
<_sre.SRE_Match object at 0x011B19F8>
>>> m=re.search("[^abc]","abcd")
>>> m.group()
'd'
>>> m=re.search("[abc^]","^") #如果"^"在[ ]中不是首字符,那么那就是一个普通字符
>>> m.group()
'^'