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

2019-02-11  本文已影响8人  松鼠的读书笔记

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

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

  1. 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
非贪婪匹配结果:abc


心中有梦想,眼前有目标
手中有计划,脚下有行动
2019 开工大吉!

上一篇 下一篇

猜你喜欢

热点阅读