Python正则表达式中的re.S的作用详解

 更新时间:2018年08月28日 08:54:21   作者:Kingname  
在Python的正则表达式中,有一个参数为re.S。它表示“.”(不包含外侧双引号,下同)的作用扩展到整个字符串,包括“\n”。本文重点给大家介绍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.

相关文章

  • 正则表达式与HTML5新元素

    正则表达式与HTML5新元素

    这篇文章主要介绍了正则表达式与HTML5新元素的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-08-08
  • JavaScript+Regex 身份证号码的正则表达式及验证详解

    JavaScript+Regex 身份证号码的正则表达式及验证详解

    在做用户实名验证时,常会用到身份证号码的正则表达式及校验方案。本文列举了两种验证方案,大家可以根据自己的项目实际情况,选择适合的方案
    2018-03-03
  • 用于过滤空白字符的几种常见的js正则表达式pattern

    用于过滤空白字符的几种常见的js正则表达式pattern

    用于过滤空白字符的几种常见的正则表达式pattern——在JavaScript中的表现形式
    2010-12-12
  • php与javascript正则匹配中文的方法分析

    php与javascript正则匹配中文的方法分析

    这篇文章主要介绍了php与javascript正则匹配中文的方法,结合实例形式分析了针对utf-8与GBK编码情况下的php、javascript正则匹配中文操作技巧,需要的朋友可以参考下
    2017-03-03
  • 通过正则表达式使用ajax检验注册信息功能

    通过正则表达式使用ajax检验注册信息功能

    这篇文章主要介绍了通过正则表达式使用ajax检验注册信息,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • 教你轻松记住JS正则表达式

    教你轻松记住JS正则表达式

    有没有人像小编一样,学了好几遍正则表达式却还是很懵圈,学的时候老明白了,学完了忘光了。好吧,其实还是练的不够,今天就随我来复习一下这傲娇的正则表达式吧。
    2016-07-07
  • Replace中的正则表达式

    Replace中的正则表达式

    这篇文章主要介绍了Replace中的正则表达式的相关知识,在文章给大家介绍了replace把原有的字符替换成新的字符的方法,需要的朋友可以参考下
    2017-10-10
  • 8个你应该了解的正则表达式提高你的工作效率

    8个你应该了解的正则表达式提高你的工作效率

    正则表达式也可以被当作是一门语言,入门时可能很吃力,不过一旦学会了就方便很多,在处理一些比较复杂的替换时,正则表达式就会发挥它的真正作用,本文整理了一些常用的正则,感兴趣的朋友可以了解下,或许对你有所帮助
    2013-01-01
  • 正则表达式的优化全面详解( 三江小渡)

    正则表达式的优化全面详解( 三江小渡)

    最近经常接触的数据动不动都是几G的量,所以满脑子都是考虑的优化两个字,不过还好之前是搞算法竞赛的,效率这个问题也一直是做斗争的对象,还算习惯吧,最近写正则也比较多,所以参考参考书、博文、自己的经验写点总结性的优化策略
    2012-09-09
  • 正则表达式实现手机号中间4位数隐藏或者只显示末尾四位数

    正则表达式实现手机号中间4位数隐藏或者只显示末尾四位数

    这篇文章主要介绍了正则表达式实现手机号中间4位数隐藏或者只显示末尾四位数的相关知识,需要的朋友可以参考下
    2018-11-11

最新评论