付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Python 之 re 模块Python 用表示正则表达式中的,因为正则表达式中如果要匹配,需要用来转义,变成,而 Python 语法中又需要对字符串中每一个进行转义,所以就变成了为了使正则表达式具有更好的可读性,Python 特别设计了原始字符串(rawstring)rawstring 就是用r作为字符串的前缀,如 rn:表示两个字符和n,而不是换行符了。Python中写正则表达式时推荐使用这种形式。例如: 可以使用 碱者 r? 处行匹配需要提醒你的是,在写文件路径的时候就不要使用 rawstring 了,这里存在陷阱。一:Re 模块正则匹配:(1)d 匹配任何十进制数;它相当于类0-9oD
2、 匹配任何非数字字符;它相当于类人 0-9os 匹配任何空白字符;它相当于类fvoS 匹配任何非空白字符;它相当于类AfvOw 匹配任何字母数字字符;它相当于类a-zA-Z0-9。W 匹配任何非字母数字字符;它相当于类Aa-zA-Z0-9_。具有重复功能的元字符:*对于前一个字符重复 0 到无穷次+对于前一个字符重复 1 到无穷次?对于前一个字符重复 0 到 1 次m,n对于前一个字符重复次数在为 mUn 次,其中,0,=*,1,=,0,1=?m对于前一个字符重复 m 次(2)A和$m=re.search(r(www.)?,str)可以匹配 XXXm=re.search(rA(www.)?,s
3、tr)可以匹配 和 在元字符口中,人在不同位置所代表的意义。re.search(Aabc,abcd)#人在首字符表示取反,即 abc 之外的任意字符。m=re.search(Aabc,abcd)m.group()dm=re.search(abcA,A)#如果人在中不是首字符,那么那就是一个普通字符m.group()A元字符($)匹配字符串的结尾或者字符串结尾的换行之前。m=re.search(foo.$,foo1nfoo2n,re.MULTILINE)printm.group()foo1(3)有几点注意的地方:1 .m.n用来表示前面正则表达式重复 m 到 n 次,尝试匹配尽可能多的 copy
4、。re.findall(a2,4,aaaaaaaa)aaaa,aaaa#可以看到m,n,正则表达式优先匹配 n,而不是 m,因为结果不是aa,aa,aa,aare.findall(a2,aaaaaaaa)aa,aa,aa,aa#匹配重复两次re.findall(a2,4?,aaaaaaaa)aa,aa,aa,aa#m,n?用来表示前面正则表达式的 m 到 n 次 copy,尝试匹配尽可能少的 copy2 .元字符“在默认模式下,匹配除换行符外的所有字符。在 DOTALL 模式下,匹配所有字符,包括换行符。m=re.match(.,n)printmNonem=re.match(.,n,re.DO
5、TALL)print#,m.group(),#3 .可以将匹配模式赋值给变量:pat=a-zA-Z+?text=?Hm-Erfunshion?”funshion!?m=re.findall(pat,text)printmHm,Er,funshion,funshionre 模块主要函数pile(pattern,flags=0)编译正则表达式,返回 RegexObject 对象,然后可以通过 RegexObject 对象调用 match()和 search()方法。prog=pile(pattern)result=prog.match(string)跟result=re.match(pattern
6、,string)是等价的。re.search()和 re.match()str=m=re.match(rwww,str)m 不为 None等同于 m=re.search(r,www?str)m=re.match(rcom,str)m 等于 Nonem=re.search(r 更 om?str)m 不为 Nonere.split(pattern,string,maxsplit=0)通过正则表达式将字符串分离。如果用括号将正则表达式括起来,那么匹配的字符串也会被列入到 list中返回。maxsplit 是分离的次数,maxsplit=1 分离一次,默认为 0,不限制次数。默认分割符为空格。re.s
7、plit(W+,Words,words,words.)Words,words,words,re.split(W+),Words,words,words.)Words,words,words,.,re.split(W+,Words,words,words.,1)Words,words,words.特别的:可以利用 split(,n?去掉末尾的换行符re.findall()匹配所有子串,并把它们作为一个列表返回。从左到右有序地返回;如果无匹配,返回空列表。re.findall(a,bcdef)re.findall(rd+,12a32bc43jf3)12,32,43,3特别的:a=abcdfana1
8、b2c3m=re.findall(Aaw+,a,re.MULTILINE)printa,m.group(0)abcdfa,a1b2c3m=re.findall(rAd+,12a,32c,n43j,3,re.MULTILINE)printm12,43多行匹配方式(包含n)只有在 multiline 下可以进行。rearch 和 match 匹配到就返回,不能匹配到多个结果,findall 可以匹配多个结果。上述结果可以验证,人是匹配换行符之后,结果提示可以利用“人”在 MULTILINE 模式可以匹配字符”n”后的字符re.sub()使用给定的替换内容将匹配模式的子字符串替换掉pat=&name?text=?hiname?m=re.sub(pat,funshion?text)printmhifunshionre.finditer(pattern,string,fl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2026版)医院请示报告制度
- 2026北京双高面试题库及答案
- 2025年中国环保收缩膜市场调查研究报告
- 2025年中国灯具遥控器市场调查研究报告
- 2025年中国海员半皮手套市场调查研究报告
- 2025年中国汽车制冷剂回收再生加注中心市场调查研究报告
- 2025年中国平光胶圈市场调查研究报告
- 护理警示:护理沟通的重要性
- 护理求职中的职业适应技巧
- 护理管理进修政策解读汇报
- 2026年自贡市自流井区社区工作者招聘笔试参考试题及答案解析
- 2026年初级经济师之初级经济师工商管理从业资格考试真题及参考答案详解AB卷
- 雨课堂学堂在线学堂云审计法律研究与案例(西南政法大学)单元测试考核答案
- 2026安徽合肥市发展和改革委员会上半年招聘事业单位工作人员20人考试备考试题及答案解析
- 2026年危险化学品重点县专家指导服务自查表
- 2026年贵州综合评标专家库评标专家考试经典试题及答案
- 2025-2026学年统编版二年级下册小学道德与法治每课教学设计(附目录)
- 2026年1月浙江首考英语真题(原卷版)
- 低压配电箱选型及安装技术标准
- 水资源保护规划编制规程(2025版)
- 2026年度河北省机关事业单位技术工人晋升高级工练习题及答案
评论
0/150
提交评论