python - 如何从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']
解决方案
尝试这个
import re
data = 'hs122 125 &55,58, 25'
results = list(map(int, re.findall(r'\d+', data)))
print(results)
推荐阅读
- javascript - ChartJS - 在不同的调用中从服务器返回标签和数据
- d3.js - d3 元素是否需要用重复的代码重新定义?
- jquery-ui-sortable - 想通过 Tabulator js 插件禁用列(行号:)的排序使用
- sumologic - Sumologic 仪表板中的环境切换
- javascript - Javascript - 无法实例化 firebase-firestore
- python - 使用 BeautifulSoup4 和 Python 抓取有序列表
- jquery - 在 angularjs 中动态加载 Jquery 选项卡
- node.js - GET 的表达参数长度限制
- c# - c# 如何在 Microsoft Interop Word 中编写
- apache-spark - Hive 内部表和 SparkSql 中的分桶