Python正则表达式中的re.S的作⽤详解
Python 正则表达式
正则表达式是⼀个特殊的字符序列,它能帮助你⽅便的检查⼀个字符串是否与某种模式匹配。
Python ⾃1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。
re 模块使 Python 语⾔拥有全部的正则表达式功能。
compile 函数根据⼀个模式字符串和可选的标志参数⽣成⼀个正则表达式对象。该对象拥有⼀系列⽅法⽤于正则表达式匹配和替换。
re 模块也提供了与这些⽅法功能完全⼀致的函数,这些函数使⽤⼀个模式字符串做为它们的第⼀个参数。
本章节给⼤家介绍Python正则表达式中的re.S的作⽤,具体内容如下所⽰:
在Python的正则表达式中,有⼀个参数为re.S。它表⽰“.”(不包含外侧双引号,下同)的作⽤扩展到整个字符串,包括“\n”。看如下代码:
import re
a = '''asdfsafhellopass:
234455
worldafdsf
'''
b = re.findall('hello(.*?)world',a)
c = re.findall('hello(.*?)world',a,re.S)
print 'b is ' , b
print 'c is ' , c
运⾏结果如下:
b is []
c is ['pass:\n\t234455\n\t']
正则表达式中,“.”的作⽤是匹配除“\n”以外的任何字符,也就是说,它是在⼀⾏中进⾏匹配。这⾥的“⾏”是以“\n”进⾏区分的。a 字符串有每⾏的末尾有⼀个“\n”,不过它不可见。
如果不使⽤re.S参数,则只在每⼀⾏内进⾏匹配,如果⼀⾏没有,就换下⼀⾏重新开始,不会跨⾏。⽽使⽤re.S参数以后,正则表达式会将这个字符串作为⼀个整体,将“\n”当做⼀个普通的字符加⼊到这个字符串中,在整体中进⾏匹配。
在re.py库的介绍中有以下语句:
“.” Matches any character except a newline.
S DOTALL “.” matches any character at all, including the newline.
>python正则表达式不包含
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论