compile 编译后执行速度更快,findall 返回匹配列表
>>> import re
>>> r=r‘a[bcd]e‘
>>> p=re.compile(r)
>>> print p.findall(‘abe,ace,ade,afe‘)
[‘abe‘, ‘ace‘, ‘ade‘]
>>> print re.findall(r,‘abe,ace,ade,afe‘)
[‘abe‘, ‘ace‘, ‘ade‘]
>>>
finditer 返回匹配迭代器
>>> print re.finditer(r,‘abe,ace,ade,afe‘)
<callable-iterator object at 0x02C5CA90>
match 匹配字符串开头,返回第一个匹配的内容
>>> r=r‘(a[bcd]e)‘ #注意使用match和search时需要分组
>>> res=re.match(r,‘abe,ace,ade,afe‘)
>>> print res.groups()
(‘abe‘,)
>>> res=re.match(r,‘afe,abe,ace,ade‘)
>>> print res
None
>>>
search 匹配字符串全文,返回第一个匹配的内容
>>> res=re.search(r,‘afe,abe,ace,ade‘)
>>> print res
<_sre.SRE_Match object at 0x02C5EE60>
>>> print res.groups()
(‘abe‘,)
>>>
sub 字符串正则替换,返回替换字符串
>>> re.sub(r‘a..d‘,‘python‘,‘abcd,aefdq,qanmd‘)
‘python,pythonq,qpython‘
>>>
subn 字符串正则替换,返回元组(替换字符串,替换次数)
>>> re.subn(r‘a..d‘,‘python‘,‘abcd,aefdq,qanmd‘)
(‘python,pythonq,qpython‘, 3)
>>>
split 返回切割后的列表
>>> re.split(r‘\+‘,"12+34*56/78")
[‘12‘, ‘34*56/78‘]
>>> re.split(r‘[\+\-\*\/]‘,"12+34*56/78")
[‘12‘, ‘34‘, ‘56‘, ‘78‘]
>>>