python特殊函数编写 python特殊方法大全( 七 )


需要注意的是,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特殊函数编写的信息别忘了在本站进行查找喔 。

推荐阅读