1.re’?’
非貪婪方式,僅僅匹配0個或1個由前面的正則表達式定義的片段
zqgsb = "are you_ok_today_you_ok_today"
print(re.search(r"you(.*?)today", zqgsb).groups())
print(re.search(r"you(.*)today", zqgsb).groups())
如果不加?,則會匹配盡可能多的字符串,加上?則只會匹配0或1個
輸出為:
('_ok_',)
('_ok_today_you_ok_',)
2.()
創建一個“捕獲”組,對正則表達式分組並記住匹配的文本
print(re.search(r"you(.*?)today(.*)", zqgsb).groups())
輸出為捕獲的兩個括號匹配的內容:
('_ok_', '_you_ok_today')
3.?:
括號在正則表達式中創建一個“捕獲”組,通過在開頭添加“?:”來關閉捕獲
print(re.search(r"you(?:.*?)today(.*)", zqgsb).groups())
print(re.search(r"you(.*?)today(?:.*)", zqgsb).groups())
輸出為:
('_you_ok_today',)
('_ok_',)