Python3正则表达式第五课

                                                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'}

猜你喜欢

转载自blog.csdn.net/dayu_luoyouyan/article/details/80549990
今日推荐