Java正则表达式aritmetic运算符出现

时间:2016-06-18 11:08:27

标签: java regex

我在Java中使用正则表达式有点问题。我尝试制作正则表达式,这将匹配aritmetic操作。 这是我的正则表达式:

[\d]*[-+*/^][\d]*([-+*/^][\d]*)*

它应该接受像34 + 45 * 5 ^ 7 / 3-5这样的字符串,但它也接受像34 + - / ^ 34这样的字符串。我不知道这个正则表达式有什么问题。

抱歉我的英文。

2 个答案:

答案 0 :(得分:2)

明星接受表达式的0到n倍。在你的情况下,可以有一个数字后跟一个运算符,后跟一个可选的数字(因为星号),可以跟随另一个运算符,所以如果可选数字未命中,则RegEx仍然匹配。 尝试使用+而不是*。 +需要至少一次出现。

答案 1 :(得分:1)

试试这个正则表达式并告诉我是否有任何问题: -

[\d]+([\-\+\*/][\d]+)*