需要注意的是,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常用的正则表达式处理函数详解的文章就介绍到这了,希望大家以后多多支持!
python3 定义函数 Python 有很多有用的内置函数 , 但还是不能满足程序员的需求 , 所以需要 自定义函数。
如何编写 自定义函数 ,需要用到 def语句,函数名 , 括号及参数 , 冒号 , 函数说明,内置缩进编码模块,return 语句 ,其中有一些也可省略不写 , 后面会慢慢介绍 。
编写函数不可或缺的元素,一定都要写 。函数名尽量写得简单易懂 。
一般是对函数的描述说明 。
这是编写具体的 操作命令 的地方 , 如果还未想好如何编写, 可以使用 pass 来占位,让程序可以运行起来 , 防止调试出错 。
参数放在最后讲,是因为这里面的东西还是很多的 。首先看个例子 。
如上的案例都是限制了参数个数的,最多传三个参数 name/age/city , 但是如果有一些特例,需要传多个参数怎么办呢 。参数前面加个 * , 变成 可变参数。
那如果想要传多个包含名称的参数 , 例如a=1,b=2,c=3......,那该怎么写呢 。参数前面加个 ** , 变成 关键字参数。
python特殊函数编写的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于python特殊方法大全、python特殊函数编写的信息别忘了在本站进行查找喔 。
推荐阅读
- 怎么从pdf提取准考证,怎样下载pdf的准考证
- 什么才算长视频短视频,长视频概念
- 聊天代理软件平台,聊天软件代理加盟
- 网络游戏玄幻,大型玄幻网络游戏
- linux发送邮件的命令 linux发送邮件命令 sendmail
- oracle怎么通过内容找表,oracle查询数据表
- word横向转竖向文字,word如何把横向文字变成竖向文字
- 关于航海的棋牌游戏的信息
- linux网卡禁用命令 linux禁用无线网卡