首页 > 解决方案 > 在python的正则表达式中只保留“:”之后的数字

问题描述

我想提取下面每个参数的数字:

import re

parameters = '''
             NO2: 42602
             SO2: 42401
             CO: 42101
             '''

所需的输出应该是:['42602','42401','42101']

我第一次尝试re.findall(r'\d+',parameters),但它也从“NO2”和“SO2”返回“2”。

然后我尝试re.findall(':.*',parameters)了,但它返回[': 42602', ': 42401', ': 42101']

如果我不能将“NO2”重命名为“二氧化氮”,有没有办法只收集右边的数字(“:”之后)?非常感谢。

标签: pythonpython-3.xregex

解决方案


re.findall(r'(?<=:\s)\d+', parameters)

应该管用。look-behind您可以从这里了解更多信息。


推荐阅读