Java 正则表达式 - 删除数学运算符后剩余的字符串部分

Java Regex - remove remaining portion of sting after a math operator

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

只需要一个正则表达式来读取直到命中其中一个字符,然后删除其余字符。

我已经弄清楚了分隔符“/”:x = input.replaceAll("/[^/]*$", ""); 我尝试遵循相同的约定,但它不起作用。

我看了其他的一些题,但是都是靠知道具体的字。在这种情况下,我不知道用户会传入什么运算符。

提前致谢。

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

对于除法,您可以将其替换为 input.replaceAll("/.*$","");

之后的每一个都应该不同,因为符号是在正则表达式中使用的。因此,您必须通过在它们之前放置一个 '\' 来转义它们。对于其他三个,将第一个字符替换为 \*、\+、\-。

这个有效:

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

此表达式查找 '-' OR '+' OR '' OR '/',然后删除 .$ | 之后的所有内容管道用于分隔值。

+ 和 * 字符实际上意味着正则表达式,因此必须在前面使用 \ 以表明您想要字符本身。

希望详细的解决方法对你有所帮助