如何在Python中从字符串的每个单词中提取数字

3

这是我的字符串

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']

2个回答

2

试试这个

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

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

1
您可以简单地使用\d+findall
re.findall(r'\d+', 'hs122 125 &55,58, 25')
# ['122', '125', '55', '58', '25']

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接