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

如何从字符串中提取数字与计算运算符得到纯运算表达式

实现方案

核心思路

不需要正向匹配要提取的内容做拼接,直接通过反向匹配过滤掉所有非计算相关的字符即可,正则实现逻辑最简单,性能也足够。

具体正则规则

使用全局替换模式,匹配所有不属于保留范围的字符,替换为空字符串即可:

  • 正则表达式:/[^\d+\-*/().]/g
  • 规则说明:
    • 方括号内的^表示取反,即匹配所有不在枚举范围内的字符
    • 保留范围包含:\d(0-9所有数字)、+-*/四则运算符、()括号、.(小数分隔符)
    • 末尾的g修饰符表示全局匹配,会替换字符串中所有符合条件的字符
  • 如果后续需要保留其他计算运算符(比如取模%、幂运算^),直接把对应符号加入方括号的保留枚举列表即可。

代码示例(JavaScript)

const inputStr = "1m-2m+(2.2*3mm)";
const outputStr = inputStr.replace(/[^\d+\-*/().]/g, "");
console.log(outputStr); // 输出结果:1-2+(2.2*3)

适配说明

  • 该方案可以自动过滤任意非保留字符,不管是m、mm这类字母单位,还是中文单位、特殊标记,都不需要单独写匹配规则
  • 如果输入包含全角运算符/全角数字,建议先做全角转半角的预处理,再执行正则替换,避免漏匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 17:06:29