从字符串中获取运算符返回小数点

时间:2016-07-18 19:22:30

标签: java regex

我正在尝试使用正则表达式从字符串中获取运算符,但是当运算符数字包含小数点时,它会被添加到运算符中。

如何将其从运营商中排除?

例如。我有一个带有这个数学表达式的字符串。

  

5 + 8 - 然后应该从字符串中提取+运算符。

     

5.2 + 8 - 然后应该提取+运算符,但现在我也得到小数点。

小数点数也可以在第二个操作数中。

String[] operators = expression.replaceAll("^\\d+", "").split("\\d+");

1 个答案:

答案 0 :(得分:-3)

首先,我不确定您是否需要^运算符。

其次,如果您要删除字符串中的所有数字,我不确定您打算如何按字母数字拆分字符串。

我想你可能只想拆分而不是使用这段代码替换和拆分:

String[] operators = expression.split("\\s+?\\d+(\\.\\d+)?\\s+?")

这将删除所有数字和周围空格(如果有)。

或者,你可以考虑使用一种接受你想要的方法而不是消除你不想要的东西。

Pattern p = Pattern.compile("[\\/\\+\\-\\*]"); //plus whatever other operators you want to support