



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CACEM 59-2025高速公路服务区充电站建设及运营管理服务规范
- GB/T 46102-2025系留气球抗风能力要求和试验方法
- 2025年生物科技行业创新技术与市场前景研究报告
- 2025年医疗器械行业技术变革及市场前景研究报告
- 2025年智慧农业行业农业物联网技术发展前景分析报告
- 2025年区块链技术行业应用前景分析报告
- 商场员工安全培训通讯稿课件
- 2025年汽车行业新能源技术发展前景研究报告
- 2025年区块链技术在物流行业的应用前景分析报告
- 巴彦淖尔市2025内蒙古巴彦淖尔市直属乌兰牧骑(市歌舞剧院)招聘事业编制演职人员笔试历年参考题库附带答案详解
- 银川能源学院《经济数学(一)》2023-2024学年第一学期期末试卷
- 2025年统编版(2024)小学道德与法治二年级上册《我为班级做贡献》教学设计
- 向国旗宣誓活动方案
- “七一”党课:从《党章》中汲取奋进力量把全面从严治党进行到底
- sis系统报警管理制度
- WeleUnit单元话题阅读理解练习-2023-2024学年高一英语单元重难点易错题精练(人教版2019)
- 游戏室工作室合同范本
- T/CCMA 0172-2023移动式升降工作平台施工现场管理规程
- 粮食代烘干协议书
- 华为光芯片笔试题及答案
- 应急预案鲁西化工集团股份有限公司煤化工二分公司突发环境事件应急预案
评论
0/150
提交评论