用正则表达式拆分算术表达式
Split an arithmetic expression with a regex
我想将 -1*-0.8/5-5
这样的表达式拆分为 [ '-1', '*', '-0.8', '/', '5', '-', '5' ]
[ '-1', '*', '-0.8', '/', '5-5' ]
这就是我现在用 expression.split(/([*/])/g);
得到的
对此有什么建议吗?
这是一个解决方案。它正确检测 +
、-
、/
、*
并接受空格的使用:
([*\/]|\b\s*-|\b\s*\+)
var expression = "-1*-0.8/5-5";
console.log(expression.split(/([*\/]|\b\s*-|\b\s*\+)/g));
Demo on regex101
来自 ,这里是接受括号的改进
var expression = "-1 * -0.8 / (5 - 5)";
console.log(expression.split(/([*\/()]|\b\s*[-+])/g));
Demo on regex101
我想将 -1*-0.8/5-5
这样的表达式拆分为 [ '-1', '*', '-0.8', '/', '5', '-', '5' ]
[ '-1', '*', '-0.8', '/', '5-5' ]
这就是我现在用 expression.split(/([*/])/g);
对此有什么建议吗?
这是一个解决方案。它正确检测 +
、-
、/
、*
并接受空格的使用:
([*\/]|\b\s*-|\b\s*\+)
var expression = "-1*-0.8/5-5";
console.log(expression.split(/([*\/]|\b\s*-|\b\s*\+)/g));
Demo on regex101
来自
var expression = "-1 * -0.8 / (5 - 5)";
console.log(expression.split(/([*\/()]|\b\s*[-+])/g));