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>

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

  • 相关阅读:
    restfulframework详解
    restful规范
    02-模板字符串
    01-学习vue前的准备工作
    vue系列
    crawler_编码转换_unicode(年)
    002-算法-递归法
    001-算法-递推法
    000-算法-基础概念
    linux_后台启动多个java -jar 程序,及关闭
  • 原文地址:https://www.cnblogs.com/RzCong/p/8711961.html
Copyright © 2011-2022 走看看