gpt4 book ai didi

python - Python 正则表达式匹配结果中缺少组

转载 作者:行者123 更新时间:2023-12-01 04:24:11 25 4
gpt4 key购买 nike

考虑这个代码片段:

import re

m = re.match(r'(\d-\w){2,3}', r'1-a2-b')

m.group(0), m.group(1), m.groups()

('1-a2-b', '2-b', ('2-b',))

所以 m.group(0) 按预期返回整个匹配,但为什么 m.group(1) 只返回第二个重复“2-b”?第一个重复“1-a”在哪里?

谢谢!

最佳答案

因为您仅为重复量词{2,3}(贪婪)之前存在的标记提供了捕获组,而该标记又仅捕获​​最后一个匹配项。因此,还要在捕获组内包含重复量词或范围量词,并将前一个捕获组作为非捕获组,否则会产生两个组。试试这个,

((?:\d-\w){2,3})

这与 (.)+(.+) 完全相同

关于python - Python 正则表达式匹配结果中缺少组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33338308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com