使用正则表达式拆分简单的数学表达式
我正在尝试使用运算符-+ * /将正则表达式拆分为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