用正则表达式拆分算术表达式

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