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

如何修改正则表达式,提取字符串中特殊符号分隔的所有数字?

解决从含特殊符号的字符串中提取数字的正则问题

你的问题核心在于正则缺少全局匹配标志,同时字符类里存在多余符号,修改方案如下:

问题分析

原正则/[0-9/.]+/未添加全局匹配标志g,导致match()方法仅返回第一个匹配结果;另外字符类中的/是多余的,原字符串中不存在该符号,无需纳入匹配规则。

修改后的正则与代码

let s = '1.58х3.45';
re = /[0-9.]+/g;
found = s.match(re);
console.log(found); // 输出 ["1.58", "3.45"]

关键修改点

  • 添加全局标志g:让match()遍历整个字符串,返回所有符合规则的匹配项数组
  • 移除字符类中的/:精简匹配规则,避免误匹配无关字符

如果需要更严谨地匹配数字(包括整数、带小数点的数),也可以使用/\d*\.?\d+/g,效果一致,但[0-9.]+在这个场景下更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 16:15:38