import re#匹配数字r=re.compile(r'\d+')r1=r.match('This is a demo')r2=r.match('This is 111 and That is 222',0,27)r3=r.match('This is 111 and That is 222',8,27)print(r1)print(r2)print(r3)
运行结果:
findall函数
搜索字符串,以列表形式返回正则表达式匹配的所有子串,如果没有找到匹配的,则返回空列表 。
需要注意的是,match 和 search 是匹配一次,而findall 匹配所有 。
findall(string[, pos[, endpos]])
string:待匹配的字符串 。
pos:可选参数,指定字符串的起始位置 , 默认为0 。
endpos:可选参数,指定字符串的结束位置,默认为字符串的长度 。
import re#匹配数字r=re.compile(r'\d+')r1=r.findall('This is a demo')r2=r.findall('This is 111 and That is 222',0,11)r3=r.findall('This is 111 and That is 222',0,27)print(r1)print(r2)print(r3)
运行结果:
re.finditer函数
和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回 。
re.finditer(pattern, string, flags=0)
pattern:匹配的正则表达式 。
string:待匹配的字符串 。
flags:标志位,用于控制正则表达式的匹配方式,如是否区分大小写 , 多行匹配等 。
import rer=re.finditer(r'\d+','This is 111 and That is 222')for i in r:print (i.group())
运行结果:
re.split函数
将一个字符串按照正则表达式匹配的子串进行分割后 , 以列表形式返回 。
re.split(pattern, string[, maxsplit=0, flags=0])
pattern:匹配的正则表达式 。
string:待匹配的字符串 。
maxsplit:分割次数,maxsplit=1分割一次,默认为0,不限次数 。
flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等 。
import rer1=re.split('\W+','This is 111 and That is 222')r2=re.split('\W+','This is 111 and That is 222',maxsplit=1)r3=re.split('\d+','This is 111 and That is 222')r4=re.split('\d+','This is 111 and That is 222',maxsplit=1)print(r1)print(r2)print(r3)print(r4)
运行结果:
re.sub函数
re.sub函数用于替换字符串中的匹配项 。
re.sub(pattern, repl, string, count=0, flags=0)
pattern:正则中的模式字符串 。
repl:替换的字符串,也可为一个函数 。
string:要被查找替换的原始字符串 。
count:模式匹配后替换的最大次数 , 默认0表示替换所有的匹配 。
import rer='This is 111 and That is 222'# 删除字符串中的数字r1=re.sub(r'\d+','',r)print(r1)# 删除非数字的字符串r2=re.sub(r'\D','',r)print(r2)
运行结果:
到此这篇关于Python常用的正则表达式处理函数详解的文章就介绍到这了,希望大家以后多多支持!
python如何使用re模块的sub函数实现把一串字母或者数字组合的字符串 , 全部替换成*round(float(x), 6) 你要保留结尾python中sub函数的0的话python中sub函数,不能存成float数据python中sub函数,float会自动去掉末尾的0
你需要保存你的结果为string或者decimal.decimal
string的话python中sub函数:
"%.6f" % float(x)
decimal的话python中sub函数:
import decimal
decimal.decimal("%.6f" % float(x))
Python 的sub和replace的区别sub出现于re库 , 用法是re.sub(pattern, repl, string, count=0, flags=0)
实例,re.sub(r'e','a','def',count = 1)
daf
相对于replace来说 , 该方法功能更强,但是运行效率更低 。
replace是自带函数,用法是str.replace(old, new[, max])
实例,'abbc'.replace('b','a',1)
aabc
对比re.sub来说,replace没有正则的效果,但是运行效率更佳 。请在实际应用中根据需求来定制使用方法,不要浪费资源 。
推荐阅读
- 新媒体工作室如何组建,新媒体工作室如何组建
- chatgpt写公司宣传稿,公司宣传稿格式
- python中%号,python中%s
- linux基本命令man Linux基本命令格式
- linux中查询端口命令,Linux端口监听命令
- python程序小爬虫,python最简单的小爬虫
- 上班领导不给配电脑怎么办,领导不给配人手,有什么好办法
- python函数栈 python3 栈
- 包含如何在gis中加入插件的词条