您的位置:首页 > 编程语言 > Python开发

Python基础学习之re正则表达式

2016-12-01 14:17 561 查看

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


result:

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')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息