2017-06-02 96 views
-1

该正则表达式-?\d+ [+|-|*|/] -?\d+匹配表达式1 + 3也没有任何问题1 + -2没有任何问题,但我不知道它为什么不匹配1 - 2。你能否解释为什么它不正确地匹配- char?用于算术表达式的正则表达式

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

  • 可选 - 开头的数字
  • 空格然后操作者则空白
  • 可选 - 前第二stringof位数
+1

逃脱' - '? – t0mm13b

回答

5

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

您当前的范围在||之间,这并不合理。你也可以使用分组而不是字符类。

(\+|-|\*|/) 

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

+0

感谢你,我能够使它工作,谢谢。 – Yoda

+0

我认为你的答案比我的答案更清楚,你应该得到+1 –