简介
Python
自
1.5
版本起增加了
re
模块,它提供
Perl
风格的正则表达式模式。
Python 1.5
之前版本则是通过
regex
模块提供
Emacs
风格的模式。
Emacs
风
格模式可读性稍差些,而且功能也不强,因此编写新代码时尽量不要再使用
regex
模块,当然偶尔你还是可能在老代码里发现其踪影。
就其本质而言,正则表达式(或
RE
)是一种小型的、高度专业化的编程语言,
(在
Python
中)
它内嵌在
Python
中
,
并通过
re
模块实现
。
使用这个小型语言,
你可以为想要匹配的相应字符串集指定规则;该字符串集可能包含英文语句、
地址、
TeX
命令或任何你想搞定的东西。然后你可以问诸如“这个字符串
匹配该模式吗?”或“在这个字符串中是否有部分匹配该模式呢?”
。
你也可以
使用
RE
以各种方式来修改或分割字符串。
正则表达式模式被编译成一系列的字节码,然后由用
C
编写的匹配引擎执行。
在高级用法中,也许还要仔细留意引擎是如何执行给定
RE
,如何以特定方式编
写
RE
以令生产的字节码运行速度更快。本文并不涉及优化,因为那要求你已充
分掌握了匹配引擎的内部机制。
正则表达式语言相对小型和受限
(功能有限)
,因此并非所有字符串处理都能用
正则表达式完成。当然也有些任务可以用正则表达式完成,不过最终表达式会变
得异常复杂。碰到这些情形时,编写
Python
代码进行处理可能反而更好;尽管
Python
代码比一个精巧的正则表达式要慢些,但它更易理解。
[