我在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,它找到了没有下划线的正确组。
答案 0 :(得分: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)
答案 1 :(得分:0)
显示的结果是正确的,但混淆是可以理解的。正如预期的那样,实际组内容从1. m.group(1) == 'AK4RAE00005'
开始编制索引。第0组是整个匹配,捕获组和所有,'AK4RAE00005_'
,因为您的模式包含下划线。