re模块是python提供的⼀一套关于处理理正则表达式的模块. 核⼼心功能有四个:
1.findall 查找所有,返回list
lst = re.findall("查找内容(正则表达式)","字符串")
2.search 进行匹配,如匹配到第一个结果就会返回这个结果,匹配不上则返回None
ret = re.search('表达式',"字符串").group()
3.match 只能从字符串的开头进行匹配
ret = re.match('表达式',"字符串").group()
4.finditer 和findall差不多 不过返回的是迭代器
it = re.finditer("表达式","字符串")
for el in it:
print(el.group())
5.其他操作
分割: ret = re.split("[ab]","qwerafjbcd")
先按'a'分割得到'qwer'和'fjbcd',在对'qwer'和'fjbcd'分别按'b'分割
print(ret) # ['qwer', 'fj', 'cd']
ret=re.split("d+","eva3egon4yuan")
print(ret) #结果 : ['eva', 'egon', 'yuan']
ret=re.split("(d+)","eva3egon4yuan")
print(ret) #结果 : ['eva', '3', 'egon', '4', 'yuan']
#在匹配部分加上()之后所切出的结果是不不同的,
#没有()的没有保留留所匹配的项,但是有()的却能够保留留了了匹配的项,
#这个在某些需要保留留匹配部分的使⽤用过程是⾮非常重要的。
替换:
sub: ret = re.sub("表达式"(old),"new","字符串")
返回字符串
subn: ret = re.subn("表达式"(old),"new","字符串")
返回元组(替换的结果,替换了了多少次)
编译成对象:
compile:
obj = re.compile(r'd{3}') # 将正则表达式编译成为⼀一个 正则表达式对象,规则要匹配的是3个数字
ret = obj.search('abc123eeee') # 正则表达式对象调⽤用search, 参数为待匹配的字符串串
print(ret.group())