算术表达式的正则表达式

时间:2017-06-02 18:31:27

标签: java regex

正则表达式-?\d+ [+|-|*|/] -?\d+匹配表达式1 + 3没有任何问题1 + -2没有任何问题,但我不知道为什么它与1 - 2不匹配。你能解释为什么它与- char不正确吗?

通过我的正则表达式我想实现:

  • 可选 - 开头
  • 数字串
  • 空格然后操作符然后空白
  • 可选 - 在第二个数字字符串之前

1 个答案:

答案 0 :(得分:5)

在角色类中间未转义的-会创建一个范围。您可以将其转义或将其移动到角色类的开头或结尾。您也不需要/想要|我猜。

您目前在||之间设置了一个范围,但这并不合理。您也可以使用分组而不是字符类。

(\+|-|\*|/)

使用这种方法,+*需要进行转义,因为它们在字符类之外时是量词。