zoukankan      html  css  js  c++  java
  • 正则表达式中的.*?和python中re.S参数的详解

    本章的内容主要是为讲解在正则表达式中常用的.*?和re.S!

    在正则表达式中有贪婪匹配和最小匹配:如下为贪婪匹配(.*)

    1 import re
    2 match = re.search(r'PY.*', 'PYANBNCNDN')
    3 print(match.group(0))

    如上的代码显示的结果是PYANBNCNDA,为贪婪匹配,会把整个字符串进行匹配,把能够满足条件的子串提取出来!

    如下为最小匹配:(.*?)

    1 import re
    2 match = re.search(r'PY.*?N', 'PYANBNCNDN')
    3 print(match.group(0))

    如上的代码显示的结果是PYAN,为最小匹配,会从头开始匹配,当匹配到满足条件时,不会再去匹配!

     re.S

    在python的正则表达式中,有一个参数re.S。它表示“.”的作用扩展到整个字符串,包括“ ”。

     1 a = '''
     2     asdfhellopass:
     3     worldaf
     4 '''
     5 
     6 b = re.findall('hello(.*?)world', a)
     7 c = re.findall('hello(.*?)world', a, re.S)
     8 print(b)
     9 print(c)
    10 
    11 
    12 []
    13 ['pass:
        ']

    拓展:

                  
    申明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    杂记5
    杂记4
    杂记3
    杂记2
    杂记1
    也来个网页版本的五子棋
    验证码识别
    npm publish命令
    window nginx php ci框架环境搭建
    也来个网页版本的五子棋
  • 原文地址:https://www.cnblogs.com/lsyb-python/p/11836263.html
Copyright © 2011-2022 走看看