全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python之re模块Python用表示正则表达式中的 ,因为正则表达式中如果要匹配 ,需要用来转义,变成 ,而Python语法中又需要对字符串中每一个进行转义,所以就变成了。为了使正则表达式具有更好的可读性,Python特别设计了原始字符串(raw string) raw string就是用r作为字符串的前缀,如 rn:表示两个字符和n,而不是换行符了。Python中写正则表达式时推荐使用这种形式。例如: 可以使用 或者进行匹配需要提醒你的是,在写文件路径的时候就不要使用raw string了,这里存在陷阱。一:Re模块正则匹配:(1)d 匹配任何十进制数;它相当于类 0-9。D 匹配任何非数字字符;它相当于类 0-9。s 匹配任何空白字符;它相当于类 fv。S 匹配任何非空白字符;它相当于类 fv。w 匹配任何字母数字字符;它相当于类 a-zA-Z0-9_。W 匹配任何非字母数字字符;它相当于类 a-zA-Z0-9_。具有重复功能的元字符:* 对于前一个字符重复0到无穷次+对于前一个字符重复1到无穷次?对于前一个字符重复0到1次m,n 对于前一个字符重复次数在为m到n次,其中,0, = *,1, = , 0,1 = ?m 对于前一个字符重复m次(2)和$m = re.search(r(www.)?,str)可以匹配 XXX.m = re.search(r(www.)?,str)可以匹配 和 在元字符中,在不同位置所代表的意义。 re.search(abc,abcd)#在首字符表示取反,即abc之外的任意字符。 m=re.search(abc,abcd) m.group()d m=re.search(abc,)#如果在 中不是首字符,那么那就是一个普通字符 m.group()元字符($)匹配字符串的结尾或者字符串结尾的换行之前。m=re.search(foo.$,foo1nfoo2n,re.MULTILINE)print m.group()foo1(3)有几点注意的地方:1.m.n用来表示前面正则表达式重复m到n次,尝试匹配尽可能多的copy。 re.findall(a2,4,aaaaaaaa)aaaa, aaaa#可以看到m,n,正则表达式优先匹配n,而不是m,因为结果不是aa,aa,aa,aa re.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) print mNone m=re.match(.,n,re.DOTALL)print #,m.group(),#3.可以将匹配模式赋值给变量:pat=a-zA-Z+text=”Hm Er funshion?”funshion!m=re.findall(pat,text)print mHm, Er, funshion, funshionre模块主要函数pile(pattern, flags=0)编译正则表达式,返回RegexObject对象,然后可以通过RegexObject对象调用match()和search()方法。prog = pile(pattern)result = prog.match(string)跟result = re.match(pattern, string)是等价的。re.search()和re.match()str=m = re.match(rwww,str) m不为None 等同于 m=re.search(rwww,str)m = re.match(rcom,str) m等于Nonem=re.search(rcom,str) m不为Nonere.split(pattern, string, maxsplit=0)通过正则表达式将字符串分离。如果用括号将正则表达式括起来,那么匹配的字符串也会被列入到list中返回。maxsplit是分离的次数,maxsplit=1分离一次,默认为0,不限制次数。默认分割符为空格。 re.split(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=abcdfana1b2c3m=re.findall(aw+,a,re.MULTILINE)print a,m.group(0)abcdfa, a1b2c3m=re.findall(rd+,12a,32c,n43j,3,re.MULTILINE)print m12, 43多行匹配方式(包含n)只有在multiline下可以进行。rearch和match匹配到就返回,不能匹配到多个结果,findall可以匹配多个结果。上述结果可以验证,是匹配换行符之后,结果提示可以利用“”在MULTILINE模式可以匹配字符”n”后的字符re.sub()使用给定的替换内容将匹配模式的子字符串替换掉pat=nametext= hi namem=re.sub(pat,funshion,text)print mhi funshionre.finditer(pattern, string, flags
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Unit4 Growing up 单元话题(成长与经历)写作满分必背范文15篇(原卷版)-2025-2026学年九年级英语上册(牛津译林版)
- 胆管结石个案护理
- 山东省青岛市58中2025年高二数学第一学期期末达标测试试题含解析
- 邵阳工业职业技术学院《刑事诉讼法学》2024-2025学年第一学期期末试卷
- 远离关节损伤:日常预防小技巧
- 西华大学《产品创新设计》2024-2025学年第一学期期末试卷
- 护理伦理投诉与纠纷的预防机制
- 特殊感染患者采血的隔离防护规范
- 2026年中考英语一轮复习:现在完成时 专项练习
- 2026年中考数学一轮总复习:列方程解应用题(专项训练)
- 何以为家电影讲解
- 压缩空气储能技术在地下钢内衬储气库中的应用与结构参数敏感性分析
- 《婚姻法》试题及答案
- 人教新版(PEP)四年级上册单元综合测试卷Unit 4 Helping in the community(含听力音频听力原文及答案)
- 地球物理勘查技术效率评估报告
- 环境保护法律法规宣讲培训资料
- 《互换性与技术测量》课件-第六章 光滑工件尺寸检验和光滑极限量规设计
- 2024年法律职业资格考试(试卷一)客观题试卷及解答参考
- 【MOOC答案】《创新与创业管理》(南京邮电大学)章节作业慕课答案
- 资产交接管理办法
- 人民医院改扩建建设项目水土保持方案
评论
0/150
提交评论