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

如何用JavaScript正则表达式去除字符串中重复的加减乘除运算符

解决计算器重复运算符替换问题

要处理重复的加减乘除运算符,你可以用正则表达式捕获连续重复的相同运算符,再替换为单个运算符即可,纯数字字符串会自动保留原样。

核心正则逻辑

使用正则 ([+\-*/])\1+:

  • ([+\-*/]):捕获单个运算符(+、-、*、/)到分组1
  • \1+:匹配分组1中捕获的运算符的1次或多次重复

代码示例

JavaScript 实现

function normalizeOperators(str) {
  return str.replace(/([+\-*/])\1+/g, '$1');
}

// 测试用例
console.log(normalizeOperators("111+++22-33*****4")); // 输出: "111+22-33*4"
console.log(normalizeOperators("22243++++11")); // 输出: "22243+11"
console.log(normalizeOperators("565656565656565656565")); // 输出: "565656565656565656565"

Python 实现

import re

def normalize_operators(s):
    return re.sub(r'([+\-*/])\1+', r'\1', s)

# 测试用例
print(normalize_operators("111+++22-33*****4"))  # 输出: "111+22-33*4"
print(normalize_operators("22243++++11"))  # 输出: "22243+11"
print(normalize_operators("565656565656565656565"))  # 输出: "565656565656565656565"

说明

  • 这个正则只会替换连续重复的相同运算符,不同运算符连续的情况(比如"+-")不会被处理,符合计算器的常规逻辑
  • 纯数字字符串因为没有匹配到任何运算符,会直接返回原字符串,无需额外判断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 17:15:04