第 7 章 正则表达式
Description: Python from novice to pro
Keywords: Python, Dive Into Python, tutorial, object-oriented, programming, documentation, book, free

# 深入 Python :Dive Into Python 中文版 Python 从新手到专家 [Dip_5.4b_CPyUG_Release] | Find:

## 第 7 章 正则表达式

正则表达式是搜索、替换和解析复杂字符模式的一种强大而标准的方法。如果你曾经在其他语言 (如 Perl) 中使用过它，由于它们的语法非常相似，你仅仅阅读一下 `re` 模块的摘要，大致了解其中可用的函数和参数就可以了。

## 7.1. 概览

字符串也有很多方法，可以进行搜索 (`index`、`find` 和 `count`)、替换 (`replace`) 和解析 (`split`)，但它们仅限于处理最简单的情况。搜索方法查找单个和固定编码的子串，并且它们总是大小写敏感的。对一个字符串`s`，如果要进行大小写不敏感的搜索，则你必须调用 `s.lower()` 或 `s.upper()` 将 `s` 转换成全小写或者全大写，然后确保搜索串有着相匹配的大小写。`replace` 和 `split`方法有着类似的限制。

如果你要解决的问题利用字符串函数能够完成，你应该使用它们。它们快速、简单且容易阅读，而快速、简单、可读性强的代码可以说出很多好处。但是，如果你发现你使用了许多不同的字符串函数和 `if` 语句来处理一个特殊情况，或者你组合使用了 `split`、`join` 等函数而导致用一种奇怪的甚至读不下去的方式理解列表，此时，你也许需要转到正则表达式了。

尽管正则表达式语法较之普通代码相对麻烦一些，但是却可以得到更可读的结果，与用一长串字符串函数的解决方案相比要好很多。在正则表达式内部有多种方法嵌入注释，从而使之具有自文档化 (self-documenting) 的能力。