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

如何忽略特殊字符提取纯数字?输入'33-01-616-000'需输出3301616000

如何从带特殊字符的字符串中提取纯数字?

嘿,我来帮你搞定这个问题!你需要处理的字符串是33-01-616-000,目标是忽略其中的连字符,只保留纯数字内容,最终得到3301616000对吧?下面我给你几种主流编程语言的实现方法,都是非常直观的:

Python 实现

方法1:列表推导式过滤字符

这种方法很直白,遍历字符串的每个字符,只保留数字字符:

original_str = '33-01-616-000'
pure_digits = ''.join([char for char in original_str if char.isdigit()])
print(pure_digits)  # 输出:3301616000

方法2:正则表达式替换

用正则匹配所有非数字字符,直接替换为空,效率也很高:

import re
original_str = '33-01-616-000'
pure_digits = re.sub(r'\D', '', original_str)
print(pure_digits)  # 输出:3301616000

注:\D是正则里匹配非数字的元字符,re.sub会把所有匹配到的非数字替换成空字符串。

JavaScript 实现

用正则全局替换非数字字符即可:

const originalStr = '33-01-616-000';
const pureDigits = originalStr.replace(/\D/g, '');
console.log(pureDigits); // 输出:3301616000

这里的g表示全局匹配,确保所有非数字字符都被替换掉。

Bash 脚本实现

如果是在终端里处理,可以用tr命令直接删除连字符,或者用sed过滤非数字:

方法1:用tr删除连字符

original_str="33-01-616-000"
pure_digits=$(echo "$original_str" | tr -d '-')
echo $pure_digits # 输出:3301616000

方法2:用sed过滤非数字

original_str="33-01-616-000"
pure_digits=$(echo "$original_str" | sed 's/[^0-9]//g')
echo $pure_digits # 输出:3301616000

核心思路其实很简单:过滤或删除所有非数字的字符,不管用哪种语言,都是围绕这个逻辑来实现的,你可以根据自己的使用场景选择合适的方法~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:50:48