PCRE/Python 下的 re 细节(2) — 点号、^ 和 $
古时候正则表达式被用来处理一行一行读入的文件内容,那时候是不会存在“匹配一个换行符”这样的需求滴。后来神说这个可以有,于是世间就出现了单行模式。我猜可能是由于拉伯伯是学语言(自然语言,不是计算机语言)出身的缘故,才会给出 single line 这么个让普罗大众有些目眩神迷的称谓。要避免出现大海的感觉,还是得余大的点号通配模式比较靠谱一点(Python re 下面叫 dotall 模式)。关于多行模式和单行模式(点号通配模式)的区别这里就不再赘述了,有兴趣的可以猛击“single line 和 multiline 一毛钱关系都没有”查看详情。下面就直接给出两种实现点号通配模式(单行模式)的办法:
1. 在表达式外部指定点号通配模式,Python 下用 re.S 参数,这个地球人都晓得滴。
2. 在表达式内部用 (?s) 模式修饰符,这个就比较优雅了,从表达式本身就可以看出处于点号通配模式下,推荐使用。
相应的,激活多行模式也有两种手法:
1. 用 re.M 参数
2. 用 (?m) 模式修饰符
好久没来了,这个博客风格我喜欢。
正则大人,十篇文章有八篇都是正则。
aaron
29 Sep 09 at 7:44 pm