如何用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
相关产品推荐
相关产品推荐

