如何编写正则表达式以从字符串方程式中拆分两个连续的数学运算符(“/-”,“*-”)?
我正在尝试解决一个需要将字符串方程式转换为数字和运算符数组的问题,但我无法做到这一点。
我编写的将字符串方程式转换为数组的正则表达式。
Input: '1+2-33/45*78'.split(/([\\+\-\\*\\/]+)/) Output: ["1", "+", "2", "-", "33", "/", "45", "*", "78"]
但是,当您有两个连续的运算符-(*-)时,上述正则表达式不能很好地工作。有关更多说明,请参见下文。
Input: '1+2-33/-45*-78'.split(/([\\+\-\\*\\/]+)/) Output: ["1", "+", "2", "-", "33", "/-", "45", "*-", "78"]
我期望输出如下。
输入: '1+2-33/-45*-78'
输出: ["1", "+", "2", "-", "33", "/", "-45", "*", "-78"]
编辑:我在stackOverflow上查找了所有答案,但是它们不能解决我上面描述的问题。
Stackoverflow答案将像下面这样解决该方程:字符串'7 / -2 * -9-8'将转换为[“ 7”,“ /-”,“ 2”,“ *-”,“ 9”,“ -“,” 8“]
请注意上面两个连续的运算符[“ /-”,“ *-”]。
但这不是我想要的。我期望的输出是这样的:
预期答案: [“ 7”,“ /”,“-2”,“ *”,“-9”,“-”,“ 8]
所以如果有这样的东西'7 / -2 * -9-8'。请注意,我这里有连续的运算符(“ /-”或“ *-”)。然后,我想在数字本身中包含负号。
stackoverflow中的所有答案都不能解决此问题。请重新打开问题。谢谢!
为什么:我正在尝试仅用(+,/,-,*)运算符实现一个简单的计算器。我希望这消除了一些疑问。