正则表达式的几个函数,sub、match、search、findall、split的几个函数的使用

发布时间 2023-11-29 21:27:21作者: 坚持坚持再一次坚持
import re
pattern='\d\.\d+'
s='I study 3.114 python every and 2.71 python I love you'
s2='python I love you'
match= re.findall(pattern,s) #findall 函数获取匹配对象中所有的匹配值,获得一个列表类型。
match2=re.findall(pattern,s2)
print(match) #输出结果:['3.114', '2.71']
print(match2) #如果匹配对象中没有匹配值,将会输出一个空列表。[]


#正则表达式的作用,例如:判断登录名是否几位数,是都由数字字母组成等等
#元字符:具有特殊意义的专用字符,例如:‘^'和'$',分别表示匹配开始和结束。

#限定符:用于限定匹配的次数
#其他符
#re模块在Python中使用正则表达式操作
# re函数的几种格式
#re.match(pattern,string,flags=0) : 用于字符串Dev开始位置进行匹配,如果匹配成功,结果为match对象,未成功为None
#re.search(pattern,string,flags=0) :用于在整个字符串中搜索第一个匹配值,如果成功,结果为match对象,未成功为None
#re.findall(pattern,string,flags=0) :用于在整个字符串中搜索符合正则表达式的值,结果是一个列表类型。
#re.sub(pattern,string,flags=0) : 用于实现对字符串中指定子串的替换。
#re.split(pattern,string,flags=0) :字符串中的split()中的用法一样,都是分隔的作用。
import re #导入
pattern='\d\.\d+' #pattern格式的意思,\d 是0-9的十位数,\d+0-9的数是允许出现一次或者多次
s='I study python 3.11 every' #被待匹配的字符串
match=re.match(pattern, s,re.I) #match函数格式,re.I是忽略大小写
print(match) #输出结果为:None,re.match

s2='3.114I study python every'
match2=re.match(pattern,s2)
print(match2)

import re
pattern='\d\.\d+'
s='I study 3.114 python every and 2.71 python I love you'
match= re.search(pattern,s) #search 只获取第一个匹配值,获取第一个后将不再获取
print(match) #输出结果为:<re.Match object; span=(8, 13), match='3.114'>,其中有匹配对象,匹配值得位置,匹配值
s2='I study python every and python I love you'
match2=re.match(pattern,s2)
print(match2) #输出None 其中没有数字类,将输出None
print(match.group())#如果想单纯的获取匹配的值,使用match.group

import re
pattern='[,|?]'
s='我想学习变成,想找黑客?来破解VIP视屏,进行学习反扒'
new_s=re.split(pattern,s) #用,和?来隔开字符串,同时输出一个列表类型
print(new_s) #输出结果:['我想学习变成', '想找黑客', '来破解VIP视屏', '进行学习反扒']

import re
pattern='黑客|破解|反扒' #字符串中的字符不能被匹配,元素应|符号隔开
s='我想学习变成,想找黑客来破解VIP视屏进行学习反扒'
new_s=re.sub(pattern,'XXX',s) #不能被匹配的字符XXX替代
print(new_s) #输出:我想学习变成,想找XXX来XXXVIP视屏进行学***X