【发布时间】:2015-04-03 11:26:11
【问题描述】:
我正在尝试编写一种方法,将输入的数学表达式拆分为所有单独的运算符和数字。例如,1 + 1 会产生一个 { 1, +, 1 } 的数组,而 2 - -2 会产生一个 { 2, -, -2 } 的数组。在对 StackOverflow 进行了一些研究(使用这个问题:Splitting a simple maths expression with regex)之后,我有点得到了这个工作,我写了以下内容:
String[] t = tokens.split("(?<=[-+*/()])|(?=[-+*/()])");
这适用于 1 + 1,但执行 2 - -2 会产生 { 2, -, -, 2 },这不是我想要的。我对拆分和正则表达式有点陌生,所以这可能是一个基本问题,我只是未能正确研究,但任何帮助将不胜感激!另外,我意识到仅用空格分隔会非常容易,但我真的很想避免这种情况。非常感谢您的帮助!
【问题讨论】:
-
转义特殊字符是什么意思?
标签: java regex parsing split expression