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_',)