# -*- coding: utf-8 -*-
#一个简单的re实例,匹配字符串中的hello字符串
#导入re模块
import re
# 将正则表达式编译成Pattern对象,注意hello前面的r的意思是“原生字符串”
pattern = re.compile(r'hello')
# 使用Pattern匹配文本,获得匹配结果,无法匹配时将返回None
match1 = pattern.match('hello world!')
match2 = pattern.match('helloo world!')
match3 = pattern.match('helllo world!')
#如果match1匹配成功
if match1:
# 使用Match获得分组信息
print match1.group()
else:
print 'match1匹配失败!'
#如果match2匹配成功
if match2:
# 使用Match获得分组信息
print match2.group()
else:
print 'match2匹配失败!'
#如果match3匹配成功
if match3:
# 使用Match获得分组信息
print match3.group()
else:
print 'match3匹配失败!'
可以看到控制台输出了匹配的三个结果:

下面来具体看看代码中的关键方法。
★ re.compile(strPattern[, flag]):
这个方法是Pattern类的工厂方法,用于将字符串形式的正则表达式编译为Pattern对象。
第二个参数flag是匹配模式,取值可以使用按位或运算符'|'表示同时生效,比如re.I | re.M。
另外,你也可以在regex字符串中指定模式,
比如re.compile('pattern', re.I | re.M)与re.compile('(?im)pattern')是等价的。
可选值有:
re.I(全拼:IGNORECASE): 忽略大小写(括号内是完整写法,下同)
re.M(全拼:MULTILINE): 多行模式,改变'^'和'$'的行为(参见上图)
re.S(全拼:DOTALL): 点任意匹配模式,改变'.'的行为
re.L(全拼:LOCALE): 使预定字符类 w W b B s S 取决于当前区域设定
re.U(全拼:UNICODE): 使预定字符类 w W b B s S d D 取决于unicode定义的字符属性
re.X(全拼:VERBOSE): 详细模式。这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释。
以下两个正则表达式是等价的:
# -*- coding: utf-8 -*-
#两个等价的re匹配,匹配一个小数
import re
a = re.compile(r"""d + # the integral part
. # the decimal point










