re模块是Python的标准库模块
模块正则接口的整体模式
re.compile 返回regetx对象
finditer fullmatch match search 返回 match对象
match.属性|方法

re模块的使用:
regex = re.compile(pattern,flags = 0)
功能 :
生成正则表达式对象
参数 :
pattern 正则表达式
flags 功能标志位,丰富正则表达式的匹配
返回值:
返回一个正则表达式对象
re.findall(pattern,string,flags = 0)
功能 :
根据正则表达式匹配目标字串内容
参数 :
pattern 正则表达式
string 目标字符串
返回值:
列表 里面是匹配到的内容
如果正则表达式有子组,则只返回子组中的内容
regex.findall(string,pos,endpos)
功能 :
根据正则表达式匹配目标字串内容
参数 :
string 目标字符串
pos,endpos : 截取目标字符串的起止位置进行匹 配,默认是整个字符串
返回值:
列表 里面是匹配到的内容
如果正则表达式有子组,则只返回子组中的内容
re.split(pattern,string,flags = 0)
功能 :
通过正则表达式切割目标字符串
参数 :
pattern 正则
string 目标字串
返回值 :
以列表形式返回切割后的内容
re.sub(pattern,replace,string,max,flags)
功能:
替换正则表达式匹配内容
参数:
pattern 正则
replace 要替换的内容
string 目标字符串
max 设定最多替换几处
返回值 :
替换后的字符串
re.subn(pattern,replace,string,max,flags)
功能和参数同sub
返回值多一个实际替换了几处
re.finditer(pattern,string,flags)
功能:
使用正则匹配目标字串
参数:
pattern 正则
string 目标字串
返回值:
迭代对象 ----》 迭代内容为match对象
re.fullmatch(pattern,string,flags)
功能 :
完全匹配一个字符串
参数:
pattern 正则
string 目标字串
返回值:
match对象,匹配到的内容
re.match(pattern,string,flags)
功能 :
匹配一个字符串起始内容
参数:
pattern 正则
string 目标字串
返回值:
match对象,匹配到的内容
re.search(pattern,string,flags)
功能 :
匹配第一个符合条件的字符串
参数:
pattern 正则
string 目标字串
返回值:
match对象,匹配到的内容
regex 对象的属性
flags 标志位数值
pattern 正则表达式
groups 子组个数
groupindex 获取捕获组字典,键为组名值是第几组
match对象属性:
match.string 表示目标字符串的开始位置
match.pos 表示目标字符串的结束位置
match.re 表示对象生成正则表达式
match.endpos 目标字符串
match.lastindex 最后一个分组是第几组
match.lastgroup 最后一组的名称(捕获)
match对象方法:
match.span() 返回匹配到内容的开始结束位置元组
match.start() 返回匹配到内容的开始位置
match.end() 返回匹配到内容的结束位置
match.groups() 返回所有子组匹配到的内容
match.groupdict() 返回捕获组字典键:捕获名 值:内容
group(n=0)
功能:
获取match对象对应的匹配内容
参数:
默认为0 表示获取整体的匹配内容
如果赋值1,2,3。。。表示获取第n个子组匹配到的内容
返回值:
返回获取到的内容字串
# regex1.py
import re
pattern = r"(?P<dog>ab)cd(?P<pig>ef)"
# 生成正则表达式对象
regex = re.compile(pattern)
s = "abcdefghfkfdafsabcdefjsaavjhcabca"
# 获取mtach对象
obj = regex.search(s, 0, 8)  # 设置开始位置结束位置
# print(len(s))
# match对象属性
print(obj.pos)  # 目标字符串的开始位置
print(obj.endpos)  # 目标字符串的结束位置
print(obj.re)  # 正则表达式对象  re.compile('(?P<dog>ab)cd(ef)')
print(obj.string)  # 目标字符串
print(obj.lastindex)  # 最后一个分组是第几组
print(obj.lastgroup)  # 最后一组的名称
# match对象方法
print(obj.span())  # 匹配到内容的起止位置
print(obj.start())  # 匹配到的内容开始位置
print(obj.end())  # 匹配到的内容结束位置
print(obj.groups())  # 所有子组匹配到的内容
print(obj.groupdict())  # 捕获组字典 键:捕获名 值:内容
print(obj.group())
print(obj.group(2))
# group(n=0)
#     功能:
#         获取match对象对应的匹配内容
#     参数:
#         默认为0 表示获取整体的匹配内容
#         如果赋值1,2,3。。。表示获取第n个子组匹配到的内容
#     返回值:
#         返回获取到的内容字串
flags参数:
re.compile
re.findall
re.search
re.match
re.finditer
re.fullmatch
re.split
re.sub
作用:
辅助正则表达式,扩展丰富的匹配内容、
regex = re.compile(r"Hello", re.I) # 忽略字母大小写
I == IGNORECASE 忽略字母大小写
S == DOTALL 让元字符 . 能够匹配到\n
M == MULTILINE 让元字符 ^ $ 能够匹配每一行的开头和结尾
X == VERBOOS 能够为正则添加注释
flags传递多个参数时可以用 按位或: | 链接
import re 
# 忽略字母大小写
regex = re.compile(r'hello',re.I)
# l = regex.findall('hello Hello')
# print(l)
s = '''hello world
nihao Beijing'''
# 让.能够匹配换行符
l = re.findall(r'.+',s,re.S)
print(l)
# 匹配每一行
obj = re.search(r"world$",s,re.M)
print(obj.group())
# re自带注释方法
pattern = r"""(?P<dog>\w+)  #dog组
\s+   #匹配任意多个空格
(\W+)  #匹配一些特殊字符
"""
#添加注释同时忽略大小写
s = re.match(pattern,'hello  %#@',re.X | re.I).group()
print(s)
来源:https://www.cnblogs.com/ParisGabriel/p/9532376.html