Python中正则表达式的group()和group(0)是不是一回事呢?
测试了一下,发现两者输出都是相同的,谢谢
Python中正则表达式的group()和group(0)是不是一回事呢?
4 回复
print(re.search(’(\d)\d\d’, ‘123’).group())
print(re.search(’(\d)\d\d’, ‘123’).group(0))
print(re.search(’(\d)\d\d’, ‘123’).group(1))
group() 和 group(0) 完全是一回事,它们都返回整个正则表达式匹配到的完整字符串。
举个例子就清楚了:
import re
pattern = r'(\d{3})-(\d{3})-(\d{4})' # 匹配电话号码
text = "我的电话是123-456-7890"
match = re.search(pattern, text)
if match:
print(f"group(): {match.group()}") # 输出: 123-456-7890
print(f"group(0): {match.group(0)}") # 输出: 123-456-7890
print(f"group(1): {match.group(1)}") # 输出: 123
print(f"group(2): {match.group(2)}") # 输出: 456
print(f"group(3): {match.group(3)}") # 输出: 7890
简单说,group() 或 group(0) 返回整个匹配,而 group(1)、group(2) 等返回括号捕获的分组。
所以用哪个看个人习惯,我一般直接写 group() 省事。
without arguments,group1 defaults to zero ( the whole match is retrun )。
就在官方文档里

