说,我有以下regex
来搜索一系列房间号码:
import re
re.findall(r'\b(\d)\d\1\b','101 102 103 201 202 203')
我想搜索第一个和最后一个数字相同的房间号码(101和202)。上面的代码给出了
['1','2']
对应于子表达式(\d)
。但它如何能够返回像101和202这样的整个房间号?
答案 0 :(得分:2)
import re
print [i for i,j in re.findall(r'\b((\d)\d\2)\b','101 102 103 201 202 203')]
或
print [i[0] for i in re.findall(r'\b((\d)\d\2)\b','101 102 103 201 202 203')]
您可以在此处使用list comprehension
。您只需要房间号码,因此仅包含i
。基本上re.findall
会返回正则表达式中的所有群组。因此您需要2
个群组。第一个是房间号,第二个用于匹配。所以我们只能提取2
元组中的第一个。