Java Regex - 在数学运算符之后删除sting的剩余部分

时间:2016-09-26 19:00:13

标签: java regex replaceall

我需要一个正则表达式,它将删除运算符后的剩余字符。 用户传递一个等式,ex 55-6 OR 55 + 6 OR(* /)。

只需要一个正则表达式,直到其中一个字符被击中,并删除其余的字符。

我得到了分歧' /'想通了:x = input.replaceAll("/[^/]*$", ""); 我尝试遵循同样的约定,但它不起作用。

我查看了其他一些问题,但他们都依赖于了解具体特征。在这种情况下,我不知道用户将传入哪个运算符。

提前致谢。

2 个答案:

答案 0 :(得分:0)

你可以将它们全部组合成一个正则表达式,尽管它有点乱。

对于划分你可以用这个输入替换它.replaceAll(“/.*$”,“”);

之后的每个应该是不同的,因为标志用于正则表达式。因此,你必须在它们前面放一个'\'来逃避它们。对于其他三个用\ *,\ +,\ - 。

替换第一个字符

答案 1 :(得分:0)

这有效:

x = input.replaceAll("[-|\\+|\\*|/].*$", "");

这个表达式查找' - 'OR'+'OR''OR'/',然后使用。 $ the |删除所有内容。 pipe用于分隔值。

+和*字符实际上是指带有正则表达式的东西,所以必须先使用\才能表明你想要角色本身。

希望详细的解决方案有帮助