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()
- '^'
复制代码 |