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) # 最后一组是第几组 # 2span() 匹配到内容的起止位置
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'}