re模块(二)
re.finditer(pattern,string)
功能 : 使用正则表达式匹配目标内容参数 : 目标字符串
返回值 : 迭代对象 迭代的每个内容为一个match对象
re.match(pattern,string)
功能 : 匹配一个字符串的开头
参数 : 目标字符串
返回值 : 如果匹配到返回 match obj
没有匹配到返回 None
re.search(pattern,string)
功能 : 匹配一个字符串
参数 : 目标字符串
返回值 : 如果匹配到返回 match obj
没有匹配到返回 None
* match 只能匹配字符串的开头位置,search可以匹配任意位置,但是也只能匹配一处
* 通常match对象调用其属性时往往需要try异常处理
fullmatch()
要求目标字符串完全匹配
compile 对象特有属性(re模块没有)
flags : 标志位
pattern : 正则表达式
groupindex : 捕获组形成的字典
groups : 多少个子组
#!/usr/bin/env python3
# coding =utf-8
import re
# 获取正则表达式对象
obj = re.compile(r'(?P<dog>ab)cd(?P<pig>ef)')
print(obj.flags) # 标志位常量
# 32
print(obj.pattern) # 正则表达式
# (?P<dog>ab)cd(?P<pig>ef)
print(obj.groupindex) # 捕获组字典
# {'dog': 1, 'pig': 2}
print(obj.groups) # 子组个数
# 2
match 对象属性方法
match_obj = obj.search('abcdefghig')
print(match_obj.pos) # 目标字符串开头位置
# 0
print(match_obj.endpos) # 目标字符串结束位置
# 10
print(match_obj.re) # 正则表达式对象
# re.compile('(?P<dog>ab)cd(?P<pig>ef)')
print(match_obj.string) # 目标字符串
# abcdefghig
print(match_obj.lastgroup) # 最后一组的名字
# pig
print(match_obj.lastindex) # 最后一组是第几组
# 2
span() 匹配到内容的起止位置
start() 匹配到内容的开始位置
end() 匹配到内容的结束位置
group(n)
功能 : 获取match 对象匹配的内容
参数 : 默认为0 表示获取正则整体的匹配内容
如果传入大于0的正数则表示获取对应子组匹配内容
返回值:返回匹配到的内容
groups()
功能 : 得到所有子组匹配的内容
groupdict()
功能 :得到所有捕获组匹配的内容
print(match_obj.start()) # 匹配到内容的开始位置
# 0
print(match_obj.end()) # 匹配到内容的结束位置
# 6
print(match_obj.span()) # 匹配到内容的起止位置
# (0, 6)
print(match_obj.group()) # 匹配正则表达式整体内容
# abcdef
print(match_obj.group(2)) # 匹配某个子组内容
# ef
print(match_obj.groups()) # 得到所有子组匹配的内容
# ('ab', 'ef')
print(match_obj.groupdict()) # 得到所有捕获组匹配的内容
# {'dog': 'ab', 'pig': 'ef'}