第七章 正则表达式

正则表达式是一种强大且标准化的方法,用于使用复杂的字符模式搜索、替换和解析文本。如果您在其他语言(如 Perl)中使用过正则表达式,那么语法将非常熟悉,您只需阅读 re 模块 的摘要即可概览可用函数及其参数。

7.1. 初探究竟

字符串具有用于搜索(indexfindcount)、替换(replace)和解析(split)的方法,但它们仅限于最简单的情况。搜索方法查找单个硬编码的子字符串,并且它们始终区分大小写。要对字符串 s 进行不区分大小写的搜索,您必须调用 s.lower()s.upper() 并确保您的搜索字符串的大小写与之匹配。 replacesplit 方法具有相同的限制。

如果您可以使用字符串函数完成您想做的事情,那么您应该使用它们。它们快速、简单且易于阅读,并且快速、简单、可读的代码有很多优点。但是,如果您发现自己使用了许多不同的字符串函数以及 if 语句来处理特殊情况,或者如果您将它们与 splitjoin 以及列表推导以奇怪的不可读的方式组合在一起,那么您可能需要升级到正则表达式。

尽管正则表达式语法很紧凑,并且与普通代码不同,但结果最终可能比使用一长串字符串函数的手动解决方案具可读性。甚至还有在正则表达式中嵌入注释的方法,使其几乎可以自文档化。