
Python 的正則表達(dá)式默認(rèn)是“ 貪心” 匹配策略, 這表示在有二義的情況下,Python 會盡可能地匹配最長的字符串。而 “ 非貪心” 策略則是盡可能地匹配最短的字符串,它與“ 貪心” 匹配策略在寫法上的區(qū)別是:在結(jié)束的花括號后跟著一個問號。
greedy_regex=re.compile(r'(AR){1,2}')
mo=greedy_regex.search('家庭ARAR演唱會來Facebook Portal TV,一展歌喉!')
print(mo.group())
no_greedy_regex=re.compile(r'(AR){1,2}?')
mo=no_greedy_regex.search('家庭ARAR演唱會來Facebook Portal TV,一展歌喉!')
print(mo.group())
運(yùn)行結(jié)果:
ARAR
AR
注意區(qū)分: 問號在 Python 正則表達(dá)式中有兩種含義:
- 聲明非貪心匹配。
- 表示可選的分組。