python贪婪和非贪婪
正则表达式通常用于在文本中查找匹配的字符串。Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符;非贪婪则相反,总是尝试匹配尽可能少的字符。在"*","?","+","{m,n}"后面加上?,使贪婪变成非贪婪。
import re
s="This is a number 234-235-22-423"
r=re.match(".+(\d+-\d+-\d+-\d+)",s)
print(r.group(1)) #输出 4-235-22-423,其中‘.+’匹配了‘This is a number 23’,贪婪
r=re.match(".+?(\d+-\d+-\d+-\d+)",s)
print(r.group(1)) #输出 234-235-22-423,其中‘.+?’匹配了‘This is a number ’,非贪