7.7. 小结
这只是正则表达式能够完成工作的很少一部分。换句话说,即使你现在备受打击,相信我,你也不是什么也没见过了。
现在,你应该熟悉下列技巧:
^
匹配字符串的开始。$
匹配字符串的结尾。\b
匹配一个单词的边界。\d
匹配任意数字。\D
匹配任意非数字字符。x?
匹配一个可选的x
字符 (换言之,它匹配 1 次或者 0 次x
字符)。x*
匹配0次或者多次x
字符。x+
匹配1次或者多次x
字符。x{n,m}
匹配x
字符,至少n
次,至多m
次。(a|b|c)
要么匹配a
,要么匹配b
,要么匹配c
。(x)
一般情况下表示一个记忆组 (remembered group)。你可以利用re.search
函数返回对象的groups()
函数获取它的值。
正则表达式非常强大,但是它并不能为每一个问题提供正确的解决方案。你应该学习足够多的知识,以辨别什么时候它们是合适的,什么时候它们会解决你的问题,什么时候它们产生的问题比要解决的问题还要多。
一些人,遇到一个问题时就想:“我知道,我将使用正则表达式。”现在他有两个问题了。
--Jamie Zawinski, in comp.emacs.xemacs