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())
運行結(jié)果:
ARAR
AR
注意區(qū)分: 問號在 Python 正則表達(dá)式中有兩種含義:
- 聲明非貪心匹配。
- 表示可選的分組。