1. 程式人生 > >正則表示式的貪婪模式與非貪婪模式

正則表示式的貪婪模式與非貪婪模式

貪婪模式:能匹配的最大部分  

s = "This is a number 234-235-22-4223"       
r = re.match(r"(.+)(\d+-\d+-\d+-\d+",s)

r.groups()

("This is a number 23","4-235-22-4223")

貪婪模式就是“.+”中的+會一直查詢到最後一個符合條件的字元,所以上述程式碼中最前面的兩個數字在提取數字是沒有被提取到

非貪婪模式:匹配越少越好

s = "This is a number 234-235-22-4223"       
r = re.match(r"(.+?)(\d+-\d+-\d+-\d+",s)

r.groups()

("This is a number ","234-235-22-4223")

非貪婪模式就是在“.+?"會匹配到第一個符合條件的字元就停止