1. 对于基本的正则表达式模块介绍,请参考下列链接:
re正则表达式
2. 修饰符(下列修饰符比较常用)
修饰符 | 描述 |
---|---|
re.I | 使匹配对大小写不敏感 |
re.M | 多行匹配,影响 ^ 和 $ |
re.S | 使 . 匹配包括换行在内的所有字符 |
3.贪心和非贪心算法
贪心:
使用 .* 匹配字符串,尽可能大的原则去匹配字符串。
非贪心:
使用 .*? 匹配字符串,少量多餐
举例说明:
使用贪心
import re
line = "affdfxxIxxdfjiejiexxlovexxeijfeifdxxyouxxjfiei"
#(.*?)非贪心算法,少量多餐
matchObj = re.findall( r'xx(.*?)xx', line, re.M|re.I)
for i in matchObj:
print i
#.*贪心算法,最大匹配
matchObj_2 = re.findall(r'xx(.*)xx',line,re.M|re.I)
for i in matchObj_2:
print matchObj_2
I
love
you
['Ixxdfjiejiexxlovexxeijfeifdxxyou']
Process finished with exit code 0
4.python正则中的group()与groups()
group():匹配的整个表达式的字符串=group(0)
group(1),group(2):返回一个包含那些组所对应值的元组
groups(): =(group(1),group(2)...)
import re
line = "affdfxxIxxdfjiejiexxlovexxeijfeifdxxyouxxjfiei"
obj=re.search(r'(\w+)I(\w+)love(\w+)',line)
print obj.group()
print obj.group(1),obj.group(2),obj.group(3)
print obj.groups()
affdfxxIxxdfjiejiexxlovexxeijfeifdxxyouxxjfiei
affdfxx xxdfjiejiexx xxeijfeifdxxyouxxjfiei
('affdfxx', 'xxdfjiejiexx', 'xxeijfeifdxxyouxxjfiei')