使用正则表达式拆分简单的数学表达式

我正在尝试使用运算符-+ * /将正则表达式拆分为1.5 + 4.2 *(5 + 2)等式,以便将输出输入到数组中,以便我可以单独解析

[0]1.5

[1]+

[2]4.2

[3]*

[4](

[5]5

[6]+

[7]2

[8])

我发现\b可以使用,1+2+3但是如果我要保留小数点,它将不会拆分。

我已经尝试过分割,\b(\.\d{1,2})但是它不会在小数点上分割

回答:

Pattern pattern = Pattern.compile("((\\d*\\.\\d+)|(\\d+)|([\\+\\-\\*/\\(\\)]))");

Matcher m = pattern.matcher("1.5+4.2*(5+2)/10-4");

while(m.find()) {

System.out.printf("%s ", m.group());

}

output: 1.5 + 4.2 * ( 5 + 2 ) / 10 - 4

您还可以使用?:避免捕获组。我把它简化了。

以上是 使用正则表达式拆分简单的数学表达式 的全部内容, 来源链接: utcz.com/qa/416107.html

回到顶部