因为我是由几行数字组成的,但我只需要提取前6位数字
import re
out=['DOT/R9.4x 4616542 rtpbuild x. : 20171111184750 p4 p4burtd review','DOT/dex 4609974 build ~. : 20171108044757 p4 p4burtd review']
for item in out:
line=re.findall(r'\d{7}',item)
print(line)
我得到的输出是:
['4616542','2017111','1184750']
['4609974','2017110','8044757']
但实际上我只需要输出前7位数字:
[4616542]
[4609974]
我不需要剩下的被除数
如果要查找第一个匹配项,则应使用
search
而不是findall
:注意,
re.search
返回一个SRE_Match
对象。另一个选项是从findall
返回的列表中提取第一个值编辑:使用
\b
将避免匹配更大的数字(感谢@Jean)输出:
因此,不要使用findall,而是使用re.search来搜索第一个匹配项:
输出:
相关问题 更多 >
编程相关推荐