You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从字符串中提取数字?编程新手求助

解决方案

Python 实现

正则表达式是提取这类数字最简洁的方式,代码如下:

import re

x = "rtx2080gtx1050i8100...."
# 匹配所有连续数字字符串
num_strings = re.findall(r'\d+', x)
# 转换为整数列表
result = [int(num) for num in num_strings]
print(result)  # 输出: [2080, 1050, 8100]

r'\d+' 是正则表达式语法,代表匹配一个或多个连续数字;re.findall 会返回所有符合规则的子串,最后通过列表推导式将字符串转为整数即可。

JavaScript 实现

如果使用JavaScript,同样可以用正则快速实现:

const x = "rtx2080gtx1050i8100....";
const result = x.match(/\d+/g).map(Number);
console.log(result); // 输出: [2080, 1050, 8100]

match(/\d+/g) 会返回所有匹配到的数字字符串数组,map(Number) 负责将每个字符串元素转为数字类型。

手动遍历实现(理解底层逻辑)

如果想搞清楚具体的执行过程,不依赖正则,可以手动遍历字符串提取数字:

x = "rtx2080gtx1050i8100...."
result = []
current_num = ""

for char in x:
    # 判断当前字符是否为数字
    if char.isdigit():
        current_num += char
    else:
        # 如果已经积累了数字字符串,就转为整数加入结果列表
        if current_num:
            result.append(int(current_num))
            current_num = ""
# 处理字符串末尾可能剩余的数字
if current_num:
    result.append(int(current_num))

print(result)  # 输出: [2080, 1050, 8100]

核心逻辑是逐个字符检查,积累连续的数字字符,遇到非数字时就将积累的数字转为整数存入结果,最后还要处理字符串末尾可能剩下的数字。

内容的提问来源于stack exchange,提问作者user20140113

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 23:55:20