zoukankan      html  css  js  c++  java
  • Python- 贪婪与非贪婪

    python运行匹配时,如果没有人为限定,默认是贪婪模式。

    import re
    
    a = 'python 22222java34bigdata'
    
    r = re.findall('[a-z]{3}',a) # 打印三个字符
    rr = re.findall('[a-z]{3,6}',a) # 匹配到的长度最小为3,最长不能超过
    rrr = re.findall('[a-z]{3,6}?',a) # 非贪婪模式匹配,不带‘?’是默认为贪婪模式,意思是不满足于最小匹配,尽可能地最大范围匹配
    print(r)
    print(rr)
    print(rrr)

    打印结果

    Windows PowerShell
    版权所有 (C) Microsoft Corporation。保留所有权利。
    
    PS F:PYWorkSparce> & python f:/PYWorkSparce/regular/c6.py
    ['pyt', 'hon', 'jav', 'php']
    ['python', 'java', 'php']
    PS F:PYWorkSparce> & python f:/PYWorkSparce/regular/c6.py
    ['pyt', 'hon', 'jav', 'big', 'dat']
    ['python', 'java', 'bigdat']
    ['pyt', 'hon', 'jav', 'big', 'dat']
    PS F:PYWorkSparce>

     以后在使用到正则匹配时出现报错,可以分析是否使用了贪婪模式,是否需要限定长度。

  • 相关阅读:
    每日博客
    每日博客
    每日博客
    每日博客
    每日博客
    每日博客
    每日博客
    每日博客
    centos7 systemctl 管理MySQL
    Postgresqlz之迁移数据pg_dump
  • 原文地址:https://www.cnblogs.com/RzCong/p/8711961.html
Copyright © 2011-2022 走看看