正则表达式来评估和替换算术运算符运算符

时间:2010-11-13 07:59:11

标签: java regex

我需要一个正则表达式来替换给定字符串中的算术运算符。我需要能够用“|”替换运算符。

例如,

String input = "5.0+9.0-(-2.0)";

String replace = input.replaceAll("[+-//*&&[^.]&&[^(-]]", "|");

在这种情况下,我打算只更换括号外的运算符。我认为正则表达式必须更多地修改为只读括号外的“ - ”,但我应该有想法。

2 个答案:

答案 0 :(得分:1)

如果您只想替换(而不是评估)不在括号中的算术运算符,您可以尝试:

String replace = input.replaceAll("[-+*/](?![^(]*\\))","|");

Ideone Link

答案 1 :(得分:0)

这似乎很难用一个正则表达式。 我认为最好的方法是提取括号中的表达式并替换剩余字符串中的算术运算。因为正则表达式无法处理括号。

有关提取的帮助Regular expression to detect semi-colon terminated C++ for & while loops可能对您有帮助。