【问题标题】:Python regex returns incorrect group [duplicate]Python正则表达式返回不正确的组[重复]
【发布时间】:2026-01-08 00:35:01
【问题描述】:
我在python中有以下问题:
searchstring = "([A-Z0-9]*)_"
basename = "AK4RAE00005_ALL_MEASUREMENT.a2l"
m = re.search(searchstring, basename)
if m and m.group(0):
print m.group(0)
我预计结果是:AK4RAE00005,但结果却是 AK4RAE00005_
我在https://regexr.com/ 上检查了我的RegEx,它找到了没有下划线的正确组。
【问题讨论】:
标签:
python
regex
python-2.7
【解决方案1】:
试试 m.group(1)
m.group(0) 匹配整个字符串。
searchstring = "([A-Z0-9]*)_"
basename = "AK4RAE00005_ALL_MEASUREMENT.a2l"
m = re.search(searchstring, basename)
if m:
print m.group(1)
【解决方案2】:
显示的结果是正确的,但混淆是可以理解的。正如预期的那样,实际组内容从 1.m.group(1) == 'AK4RAE00005' 开始索引。零组是整个匹配,捕获组和所有,这是'AK4RAE00005_',因为您的模式包含下划线。