我在Java中使用正则表达式有点问题。我尝试制作正则表达式,这将匹配aritmetic操作。 这是我的正则表达式:
[\d]*[-+*/^][\d]*([-+*/^][\d]*)*
它应该接受像34 + 45 * 5 ^ 7 / 3-5这样的字符串,但它也接受像34 + - / ^ 34这样的字符串。我不知道这个正则表达式有什么问题。
抱歉我的英文。
答案 0 :(得分:2)
明星接受表达式的0到n倍。在你的情况下,可以有一个数字后跟一个运算符,后跟一个可选的数字(因为星号),可以跟随另一个运算符,所以如果可选数字未命中,则RegEx仍然匹配。 尝试使用+而不是*。 +需要至少一次出现。
答案 1 :(得分:1)
试试这个正则表达式并告诉我是否有任何问题: -
[\d]+([\-\+\*/][\d]+)*