使用 Python 模块 re 实现解析小工具 孙 翎, 软件工程师, IBM 贺 皓, 高级软件工程师, IBM 张 晗, 高级软件工程师, IBM 简介: Python 模块 re(Regular Expression)是一个很有价值并且非常强大的文本解析工具,本文通过一个简单有趣的小实例来分享一下此模块的使用方法。首先讲述 Python re 的语法和功能,并通过实际代码片段分步描述实现文本解析小工具的过程,最后演示该小工具的效果,并且为读者提供运行在 Google App Engine 上的实例。 概要 在开发过程中发现,Python 模块 re(Regular Expression)是一个很有价值并且非常强大的文本解析工具,因而想要分享一下此模块的使用方法。 有这样一个简单而有趣的实践范例:对于喜欢追看美剧的年轻人,最新一集美剧的播出时间常常是一个让人头疼的问题,一个实时更新美剧播出时间表的小工具会很受欢迎。 本文通过以上这个实例,描述如何抓获 TV.com 网站上的文本信息,利用 Python 的 re 模块进行解析,并将热门美剧播出时间显示在自己的网页上,希望能够以娱乐的方式很好的解释 re 模块的用法。 Py thon 正则表达式模块 (re) 简介 Python 的 re 模块(Regular Expression 正则表达式)提供各种正则表达式的匹配操作,和 Perl 脚本的正则表达式功能类似,使用这一内嵌于 Python 的语言工具,尽管不能满足所有复杂的匹配情况,但足够在绝大多数情况下能够有效地实现对复杂字符串的分析并提取出相关信息。Python 会将正则表达式转化为字节码,利用 C 语言的匹配引擎进行深度优先的匹配。 Py thon 正则表达式语法 正则表达式可以包含普通字符和特殊字符,普通字符(比如数字或者字母)可以直接对目标字符串进行匹配,在本文中我们主要讨论利用特殊字符来模糊匹配某一些字符串的方法,比如'|'或者'(',使用这些特殊字符,正则表达式可以表示某一类的普通字符,或者是改变其周围的正则表达式的含义。具体如表 2-1 所示: 表 1. 正则表达式语法 符号 意义 例子 . 表示任意字符,如果说指定了 DOTALL 的标识,就表示包括新行在内的所有字符。 ^ 表示字符串开头。 $ 表示字符串结尾。 „ test ‟ 可以匹配„ test ‟和„ testtool ‟,但„ test$ ‟只能匹配„ test ‟。 *, +, ? '*'表示后面可跟 0 个或多个字符,'+'表示后面可跟 1 个或多个字符,'?'表示后面可跟 0 个或多个字符 „ abc* ...