python文字处理函数 python文本处理( 五 )


re.compile(pattern[, flags])
pattern:一个字符串形式的正则表达式 。
flags:可选,表示匹配模式,比如忽略大小写,多行模式等 。
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处理字符串必备方法 字符串是Python中基本的数据类型,几乎在每个Python程序中都会使用到它 。
?、Slicing
【python文字处理函数 python文本处理】 slicing切片,按照一定条件从列表或者元组中取出部分元素(比如特定范围、索引、分割值)
?、****strip()
strip()方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列 。
在使用strip()方法时,默认去除空格或换行符,所以#号并没有去除 。
可以给strip()方法添加指定字符,如下所示 。
此外当指定内容不在头尾处时,并不会被去除 。
第一个\n前有个空格,所以只会去取尾部的换行符 。
最后strip()方法的参数是剥离其值的所有组合,这个可以看下面这个案例 。

推荐阅读