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