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 '/',然后删除 .$ | 之后的所有内容管道用于分隔值。
+ 和 * 字符实际上意味着正则表达式,因此必须在前面使用 \ 以表明您想要字符本身。
希望详细的解决方法对你有所帮助
我需要一个正则表达式来删除运算符后的剩余字符。 用户传入一个等式,ex 55-6 OR 55+6 OR ( * / ).
只需要一个正则表达式来读取直到命中其中一个字符,然后删除其余字符。
我已经弄清楚了分隔符“/”:x = input.replaceAll("/[^/]*$", "");
我尝试遵循相同的约定,但它不起作用。
我看了其他的一些题,但是都是靠知道具体的字。在这种情况下,我不知道用户会传入什么运算符。
提前致谢。
您可以将它们全部组合成一个正则表达式,尽管它会有点混乱。
对于除法,您可以将其替换为 input.replaceAll("/.*$","");
之后的每一个都应该不同,因为符号是在正则表达式中使用的。因此,您必须通过在它们之前放置一个 '\' 来转义它们。对于其他三个,将第一个字符替换为 \*、\+、\-。
这个有效:
x = input.replaceAll("[-|\+|\*|/].*$", "");
此表达式查找 '-' OR '+' OR '' OR '/',然后删除 .$ | 之后的所有内容管道用于分隔值。
+ 和 * 字符实际上意味着正则表达式,因此必须在前面使用 \ 以表明您想要字符本身。
希望详细的解决方法对你有所帮助