假设我有以下表达式:
2^3+4
5*3 + log(9) + 32/4 - 2.1^5
44 - 22 + sin(30)*2.34 + 51.32^4 + 17*32/11
我想找到并捕获前面的“^”数字和后面的数字,然后将其替换为 Math.pow(captured1,captured2); 所以字符串将是这样的:
Math.pow(2,3)+4
5*3 + log(9) + 32/4 - Math.pow(2.1,5)
44 - 22 + sin(30)*2.34 + Math.pow(51.32,4) + 17*32/11
它必须与 Java 正则表达式兼容。
我的想法:
查找:
(.*\d(\.\d)?)\^(.*\d(\.\d)?)
替换:
Math.pow(\1,\2)
提前致谢。
最佳答案
String result = subject.replaceAll("(-?\\d+(?:\\.\\d+)?)\\^(-?\\d+(?:\\.\\d+)?)", "Math.pow($1,$2)");
关于java - 正则表达式从字符串中捕获 float (并替换为捕获的 float ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18836669/