首页 > 解决方案 > 如何从python中的字符串中的每个单词中提取数字

问题描述

这是我的字符串

data = 'hs122 125 &55,58, 25'

预期结果:[122、125、55、58、25]

尝试1:

data = 'hs122 125 &55,58, 25'
s = re.search(r"\d+(\.\d+)?", data)
print(s.group(0))

输出:122

尝试2:

data = 'hs122 125 &55,58, 25'
s = [int(s) for s in data.split() if s.isdigit()]
print(s)

输出:[125, 25]

尝试3:

p = '[\d]+[.,\d]+|[\d]*[.][\d]+|[\d]+'
data = 'hs122 125 &55,58, 25'
numbers = []
if re.search(p, data) is not None:
    for catch in re.finditer(p, data):
        numbers.append(catch[0])
print(numbers)

输出:['122', '125', '55,58,', '25']

标签: python

解决方案


尝试这个

import re
data = 'hs122 125 &55,58, 25'

results = list(map(int, re.findall(r'\d+', data)))
print(results)

推荐阅读