zoukankan      html  css  js  c++  java
  • 贪婪模式和非贪婪模式

    #正则表达式通常使用于查找匹配的字符串。Python里数量词默认是贪婪的(在少数语言里也可能默认是非贪婪),总是尝试匹配尽可能多的字符;非贪婪模式刚好相反,总是尝试匹配尽可能少的字符。
    #例如,正则表达式"ab*"如果用于查找"abbbc",就会找到"abbb"。如果使用非贪婪的数量词"ab*?",就会找到"a"。
    #例如
    1 #!/usr/bin/python3
    2 #-*-coding:UTF-8-*-
    3 #贪婪模式和非贪婪模式
    4 
    5 import re
    6 
    7 print(re.match(r'^(d+)(0*)$','102300').groups())
    #执行结果如下:
    1 D:Pythonworkspace>python 贪婪模式和非贪婪模式.py
    2 ('102300', '')
    #由于d+采用贪婪模式,直接把后面的0全匹配了,结果0*只能匹配空字符串。要让0*能够匹配到后面的两个0,必须让d+采用非贪婪匹配(尽可能匹配)。在0*后面加一个?就可以让d+采用非贪婪匹配。具体实现如下:
    1 #!/usr/bin/python3
    2 #-*-coding:UTF-8-*-
    3 #贪婪模式和非贪婪模式
    4 
    5 import re
    6 
    7 print(re.match(r'^(d+?)(0*)$','102300').groups())
    #执行结果如下:
    1 D:Pythonworkspace>python 贪婪模式和非贪婪模式.py
    2 ('1023', '00')
  • 相关阅读:
    一些暂时被我鸽掉的题目
    概率期望生成函数 学习笔记?
    「SDOI2017」树点涂色 解题报告
    「十二省联考 2019」字符串问题 解题报告
    2019好多省联考 游记
    懒癌 解题报告
    MySQL 性能优化
    数据库优化
    平台团购活动商品同步功能
    ECSSHOP表结构
  • 原文地址:https://www.cnblogs.com/DLHe/p/8327455.html
Copyright © 2011-2022 走看看