Anrs Hu

你所知的一切…

PCRE/Python 下的 re 细节(2) — 点号、^ 和 $

with one comment

古时候正则表达式被用来处理一行一行读入的文件内容,那时候是不会存在“匹配一个换行符”这样的需求滴。后来说这个可以有,于是世间就出现了单行模式。我猜可能是由于拉伯伯是学语言(自然语言,不是计算机语言)出身的缘故,才会给出 single line 这么个让普罗大众有些目眩神迷的称谓。要避免出现大海的感觉,还是得余大的点号通配模式比较靠谱一点(Python re 下面叫 dotall 模式)。关于多行模式和单行模式(点号通配模式)的区别这里就不再赘述了,有兴趣的可以猛击single line 和 multiline 一毛钱关系都没有”查看详情。下面就直接给出两种实现点号通配模式(单行模式)的办法:

1. 在表达式外部指定点号通配模式,Python 下用 re.S 参数,这个地球人都晓得滴。
2. 在表达式内部用 (?s) 模式修饰符,这个就比较优雅了,从表达式本身就可以看出处于点号通配模式下,推荐使用。

相应的,激活多行模式也有两种手法:

1. 用 re.M 参数
2. 用 (?m) 模式修饰符

Written by admin

September 29th, 2009 at 2:55 am

Posted in Regular Expression

Tagged with

One Response to 'PCRE/Python 下的 re 细节(2) — 点号、^ 和 $'

Subscribe to comments with RSS or TrackBack to 'PCRE/Python 下的 re 细节(2) — 点号、^ 和 $'.

  1. 好久没来了,这个博客风格我喜欢。

    正则大人,十篇文章有八篇都是正则。

    aaron

    29 Sep 09 at 7:44 pm

Leave a Reply