zoukankan      html  css  js  c++  java
  • Python正则贪婪非贪婪

    自己遇到的问题,小记一下!

    # -*- coding: utf-8 -*-
    __author__ = 'Johnny'
    import re
    
    line = "baaaaacfbsbdada"
    reg_str = ".*(b.*b).*"
    match_str = re.match(reg_str, line)
    if match_str:
        print match_str.group(1)
    ----------------------------------------
    line = "baaaaacfbsdada"
    reg_str = ".*(b.*b).*"
    match_str = re.match(reg_str, line)
    if match_str:
        print match_str.group(1)
    ----------------------------------------
    line = ""
    reg_str = ".*"
    match_str = re.match(reg_str, line)
    if match_str:
        print match_str.group() is ''
        print match_str.group() is True
        print match_str.group() is False

    以上代码输出为:

    
    >>> bsb
    >>> baaaaacfb
    >>> True
    >>> False
    >>> False

    第一种情况是,在满足分组条件下,贪婪,所以‘bsb’左侧全部被贪婪。
    第二种情况是,在满足分组条件下,无法再贪婪,所以左侧开始就直接匹配分组了。
    第三种情况是,’.*’可以匹配空,所以找到了。但是空既不是True也不是False。
    非贪婪就比较好理解了。

  • 相关阅读:
    异常作业
    多态作业
    封装和继承作业
    类和对象作业
    多重循环、方法作业
    选择语句+循环语句作业
    数据类型和运算符作业
    初识Java作业
    C 数据结构堆
    C基础 旋转数组查找题目
  • 原文地址:https://www.cnblogs.com/SmallCaff/p/10650696.html
Copyright © 2011-2022 走看看