1.match() 从开始位置开始匹配
2.search() 任意位置匹配,如果有多个匹配,只返回第一个
3.finditer() 返回所有匹配
4.每次匹配,都是尽量最大匹配。例如:
>>> m = re.compile(\’abc[bcd]*b\’)
>>> m.findall(\’abcbcbcb\’)
[\’abcbcbcb\’]
其实abcbcb也是匹配的abc[bcd]*b的,不过只返回一个最大的匹配值。
5.split()方法
a.根据正则式划分字符串,可指定最大的划分数
>>> p = re.compile(r\’\\W+\’)
>>> p.split(\’This is a test, short and sweet, of split().\’)
[\’This\’, \’is\’, \’a\’, \’test\’, \’short\’, \’and\’, \’sweet\’, \’of\’, \’split\’, \’\’]
b.有时,你不仅对定界符之间的文本感兴趣,也需要知道定界符是什么。
如果捕获括号在 RE 中使用,那么它们的值也会当作列表的一部分返回。比较下面的调用:
>>> p2 = re.compile(r\'(\\W+)\’)
[\’This\’, \’… \’, \’is\’, \’ \’, \’a\’, \’ \’, \’test\’, \’.\’, \’\’]