Python's Archiver

為方便港臺同胞閱覽,Python中國特別推出簡繁體內容轉換功能

zkfarmer 发表于 2008-11-9 00:47

4.2.1 正则表达式语法

正则表达式(或RE)指定了一套匹配的字符串;这个模块中的函数让你检查一个特别的字符串是否匹配一个给定的正则表达式(或一个给定的正则表达式是否匹配一个特别的字符串,归结为同样的事情)。

正则表达式可以被连接形成新的正则表达式;如果A和B都是正则表达式,那么AB也是一个正则表达式。一般而言,如果一个字符串p匹配A,另一个字符串q匹配B,字符串pq将匹配AB。这除非A或B包含低优先级的操作;A和B之间的边界条件;或拥有编号组参考。因此,从简单的原始的表达式中,像这儿描述的一个,复杂的表达式可以被很容易的构造。正则表达式理论和实现的详情,查阅前面引用的Friedl的书籍,或几乎所有的关于编译构造的教科书。

一个正则表达式遵循的格式的简短说明。更多信息和一个优雅的说明,查阅如何正则表达式,访问[url]http://www.python.org/doc/howto/[/url]。

正则表达式可以包含特殊的和普通的字符。多数普通字符,像”A”,”a”,或”0”,是最简单的正则表达式;它们简单地匹配自身。你可以连接原始的字符,因此last匹配字符串’last’。(这节剩余的部分中,我们将以特殊的格式编写RE,通常不用引号,并且被匹配的字符串用单引号。)

一些字符,像”|”或”(”,是特殊的。特殊的字符不是代表原始字符的类,就是影响它们周围的正则表达式如何被解释。

特殊的字符是:
"."
(点。)缺省的模式中,匹配除换行以外的所有字符。如果DOTALL标志已经被指定,匹配包括换行在内的所有字符。

"^"
(脱字符,或向上的箭头)匹配字符串的起始,在MULTILINE模式中,在每个换行后也立即匹配。

"$"
匹配字符串的结尾或换行之前字符串的结尾,MULTILINE模式中换行之前也匹配。当正则表达式foo$仅匹配’foo’时,foo既匹配’foo’又匹配’foobar’。更有意思,在‘foo1\nfoo2\n’中查找foo.$通常匹配’foo2’,但是在MULTILINE模式中匹配’foo1’。


出处[url=http://www.okpython.com]Python中国[/url],由zkfarmer翻译整理,提交文档错误和建议在[url=http://www.zkfarmer.org]这里[/url]。

[[i] 本帖最后由 zkfarmer 于 2008-11-10 16:52 编辑 [/i]]

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.