算术表达式的正则表达式

时间:2015-04-24 10:34:16

标签: java regex arithmetic-expressions

我试图写一个正则表达式来检查给定的字符串是否相似 a + b,2 + a + b,3 + 6 * 9 + 6 * 5 + a * b等......

只有+和*运营商。

我试过

if (str.matches("(\\d|\\w \\+|\\*){1,} \\d|\\w"))

不幸的是它只处理3 * 7 ...(数字*数字)等情况。

等待你的回答,谢谢你的阅读。

2 个答案:

答案 0 :(得分:2)

*+放在字符类中。

str.matches("\\w(?:\\s[+*]\\s\\w)+");

DEMO

答案 1 :(得分:1)

这将处理简单和链式计算的案例

[0-9A-Za-a]*( ){0,}([+-/*]( ){0,}[0-9A-Za-a]*( ){0,})*

这将匹配,例如

  • 1 + 2
  • 1 + 2
  • 1 + a * 14/9

(您可以通过更新[+-/*]

来更改所需的运算符