Python正则表达式之贪婪匹配与非贪婪匹配

1. 什么是贪婪匹配: 贪婪匹配在匹配字符串时总是尝试匹配 尽可能多 的字符。

2. 什么是非贪婪匹配: 与贪婪匹配相反,非贪婪匹配在匹配字符串时总是尝试匹配 尽可能少 的字符。

  • Python里数量词默认是 贪婪模式 的,在"*","?","+","{m,n}"后面加上?,可使贪婪模式变成非贪婪模式。
  • 下面我们用代码说明:

    import re
    # 贪婪匹配
    greedy_pattern = re.compile(r'ab.*c')
    greedy_match = greedy_pattern.match('abcaxc')
    print("贪婪匹配结果:" + greedy_match.group())
    # 非贪婪匹配
    not_greedy_pattern = re.compile(r'ab.*?c')
    not_greedy_match = not_greedy_pattern.match('abcaxc')
    print("非贪婪匹配结果:" + not_greedy_match.group())
    贪婪匹配结果:abcaxc