7.1. 概览
字符串也有很多方法,可以进行搜索 (index
、find
和 count
)、替换 (replace
) 和解析 (split
),但它们仅限于处理最简单的情况。搜索方法查找单个和固定编码的子串,并且它们总是大小写敏感的。对一个字符串s
,如果要进行大小写不敏感的搜索,则你必须调用 s.lower()
或 s.upper()
将 s
转换成全小写或者全大写,然后确保搜索串有着相匹配的大小写。replace
和 split
方法有着类似的限制。
如果你要解决的问题利用字符串函数能够完成,你应该使用它们。它们快速、简单且容易阅读,而快速、简单、可读性强的代码可以说出很多好处。但是,如果你发现你使用了许多不同的字符串函数和 if
语句来处理一个特殊情况,或者你组合使用了 split
、join
等函数而导致用一种奇怪的甚至读不下去的方式理解列表,此时,你也许需要转到正则表达式了。
尽管正则表达式语法较之普通代码相对麻烦一些,但是却可以得到更可读的结果,与用一长串字符串函数的解决方案相比要好很多。在正则表达式内部有多种方法嵌入注释,从而使之具有自文档化 (self-documenting) 的能力。