Python正则表达式指南.pdf

Python正则表达式指南.pdf

ID:52774967

大小:619.14 KB

页数:7页

时间:2020-03-30

Python正则表达式指南.pdf_第1页
Python正则表达式指南.pdf_第2页
Python正则表达式指南.pdf_第3页
Python正则表达式指南.pdf_第4页
Python正则表达式指南.pdf_第5页
资源描述:

《Python正则表达式指南.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、2014年3月18日Python正则表达式指南-AstralWind-博客园Python正则表达式指南本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例。本文的内容不包括如何编写高效的正则表达式、如何优化正则表达式,这些主题请查看其他教程。注意:本文基于Python2.4完成;如果看到不明白的词汇请记得百度谷歌或维基,whatever。尊重作者的劳动,转载请注明作者及原文地址>.

2、式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同;但不用担心,不被支持的语法通常是不常用的部分。如果已经在其他语言里使用过正则表达式,只需要简单看一看就可以上手了。下图展示了使用正则表达式进行匹配的流程:正则表达式的大致匹配过程是:依次拿出表达式和文本中的字符比较,如果每一个字符都能匹配,则匹配成功;一旦有匹配不成功的字符则匹配失败。如果表达式中

3、有量词或边界,这个过程会稍微有一些不同,但也是很好理解的,看下图中的示例以及自己多使用几次就能明白。下图列出了Python支持的正则表达式元字符和语法:http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html1/72014年3月18日Python正则表达式指南-AstralWind-博客园http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html2/72014年3月18日Python正则表达式指南-Astral

4、Wind-博客园1.2.数量词的贪婪模式与非贪婪模式正则表达式通常用于在文本中查找匹配的字符串。Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符;非贪婪的则相反,总是尝试匹配尽可能少的字符。例如:正则表达式"ab*"如果用于查找"abbbc",将找到"abbb"。而如果使用非贪婪的数量词"ab*?",将找到"a"。1.3.反斜杠的困扰与大多数编程语言相同,正则表达式里使用""作为转义字符,这就可能造成反斜杠困扰。假如你需要匹配文本中的字符"",那么使用编程语言表示的正则表达式里将需

5、要4个反斜杠"\\":前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在正则表达式里转义成一个反斜杠。Python里的原生字符串很好地解决了这个问题,这个例子中的正则表达式可以使用r"\"表示。同样,匹配一个数字的"\d"可以写成r"d"。有了原生字符串,你再也不用担心是不是漏写了反斜杠,写出来的表达式也更直观。1.4.匹配模式正则表达式提供了一些可用的匹配模式,比如忽略大小写、多行匹配等,这部分内容将在Pattern类的工厂方法re.compile(pattern[,flags])中一起介绍。2.r

6、e模块2.1.开始使用rePython通过re模块提供对正则表达式的支持。使用re的一般步骤是先将正则表达式的字符串形式编译为Pattern实例,然后使用Pattern实例处理文本并获得匹配结果(一个Match实例),最后使用Match实例获得信息,进行其他的操作。1#encoding:UTF-82importre34#将正则表达式编译成Pattern对象5pattern=re.compile(r'hello')67#使用Pattern匹配文本,获得匹配结果,无法匹配时将返回None8match=pattern.match('he

7、lloworld!')910ifmatch:11#使用Match获得分组信息12printmatch.group()1314###输出###15#hellore.compile(strPattern[,flag]):这个方法是Pattern类的工厂方法,用于将字符串形式的正则表达式编译为Pattern对象。第二个参数flag是匹配模式,取值可以使用按位或运算符'

8、'表示同时生效,比如re.I

9、re.M。另外,你也可以在regex字符串中指定模式,比如re.compile('pattern',re.I

10、re.M)与re.compil

11、e('(?im)pattern')是等价的。可选值有:re.I(re.IGNORECASE):忽略大小写(括号内是完整写法,下同)M(MULTILINE):多行模式,改变'^'和'$'的行为(参见上图)S(DOTALL):点任意匹配模式,改变'.'

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。