注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

极夜.潜的博客

 
 
 

日志

 
 

正则表达式的单行模式和多行模式  

2010-11-15 10:25:28|  分类: Programming |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
摘自:http://anrs.sacredfir.com/archives/27

单行模式主要用于改变点号的匹配规则,而多行模式用于改变 ^ 和 $ 的匹配规则;默认情况下单行模式和多行模式均处于 off 状态,可以分别激活或同时激活这两种模式。

开启单行模式:(?s);开启多行模式:(?m)

默认情况下,点号能够匹配除换行符外的所有字符,如果想要匹配到换行符的话,就需要激活单行模式,单行模式下点号就能匹配天地间的一切字符了,所以余大将之译为点号通配模式。

而 ^ 和 $ 在默认情况下是匹配整个目标文本起始和结束的锚,也就是说等价于 \A 和 \Z 的,如果激活了多行模式的话,^ 和 $ 就变成了能够匹配到行起始行结束的锚。

所以,最后说一句,单行模式和多行模式之间,一毛钱关系都没有

________________________________________________________________________

Python 正则表达式的 MULTILINE 模式


When specified, the pattern character '^' matches at the beginning of the string and at the beginning of each line (immediately following each newline); and the pattern character '$' matches at the end of the string and at the end of each line (immediately preceding each newline). 

By default, '^' matches only at the beginning of the string, and '$' only at the end of the string and immediately before the newline (if any) at the end of the string.


例如(须import re):

print re.findall('^From''Reciting \nFrom Memory') 将返回:[]

print re.findall('^From', 'Reciting \nFrom Memory', re.M) 将返回:['From']

\A 仅匹配字符串的开头。当不在MULTILINE模式中时,\A和^是作用相同的。在MULTILINE模式中,它们是不同的;\A仍然仅匹配字符串的开头,但是^也匹配'\n'或'\r'之后的位置。 

参考:
http://docs.python.org/library/re.html#re.MULTILINE
http://wufoxfm95.javaeye.com/blog/160775

  评论这张
 
阅读(250)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018