java - 正则表达式从字符串中捕获 float (并替换为捕获的 float )

标签 java regex

假设我有以下表达式:

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/

相关文章:

java - 从 XML 文件中检索两条数据的最佳方法是什么?

javascript - Web 应用程序 - 离开主页后 90 秒执行操作

regex - Regexp.FindAllStringSubmatch()中,第二个参数是做什么的?

regex - VSCode 代码片段转换 : downcase and capitalize at the same time

python - 将文本文件转换为json格式或过滤掉键值对

java - 根据用户输入在文本框 asp.net 中自动添加货币值(value)分 (12,345.00 , 12,345.55)

java - 为什么在迭代期间从映射中删除不存在的元素有时只会崩溃?

Java:无论应用服务器如何,通用访问资源文件

java - 将 JFrame 容器对象居中

R Strsplit 将分隔符保留在第二个元素中