matchObj = re.match(r’(.) are (.?) .*', line)
if matchObj:
print( "matchObj.group() : ", matchObj.group())
print("matchObj.group(1) : ", matchObj.group(1))
print("matchObj.group(2) : ", matchObj.group(2))
print("matchObj.groups() : ",matchObj.groups()) #返回一个元祖
else:
print( “No match!!”)
运行结果为:
matchObj.group() : Cats are smarter than dogs
matchObj.group(1) : Cats
matchObj.group(2) : smarter
matchObj.groups() 😦‘Cats’, ‘smarter’)
###### re.compile函数
compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。
语法格式为:
re.compile(pattern[, flags]) #定义正则规则
参数:
* pattern : 一个字符串形式的正则表达式
* flags : 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:
1. re.I 忽略大小写
2. re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境
3. re.M 多行模式
4. re.S 即为 . 并且包括换行符在内的任意字符(. 不包括换行符)
5. re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库
6. re.X 为了增加可读性,忽略空格和 # 后面的注释
实例:
import re
pattern = re.compile(r’\d+') # 用于匹配至少一个数字
m = pattern.match(‘one12twothree34four’, 3, 10) # 从’1’的位置开始匹配,正好匹配