是否可以在Java中使用正则表达式在+和 - 之间切换?

时间:2012-12-03 09:43:57

标签: java regex replace

6*x + 7 = 7*x + 2 - 3*x

当我们将右侧移动到等式的左边时,我们需要将操作符从+转到 - 反之亦然。

使用java正则表达式replaceAll,我们可以用-s替换所有+'。结果,所有的操作员标志变成了 - 使我们无法恢复所有的+。

作为一种解决方法,我在迭代字符串并将+更改为 - 遇到一个,反之亦然。但我仍然想知道是否有办法在Java中使用正则表达式在布尔值对之间进行切换?

2 个答案:

答案 0 :(得分:10)

你可以使用这个技巧:

String equation = "<Your equation>"
equation = equation.replaceAll("+","$$$");
equation = equation.replaceAll("-","+");
equation = equation.replaceAll("$$$","-");

假设$$$不在您的等式中。

答案 1 :(得分:0)

在PHP中,可以执行以下操作:

function swap($m) {
    return ($m[0]=='-')?'+':'-';
}
echo preg_replace_callback( '(\+|\-)', 'swap', '1 + 2 - 3 + 4 - 5');