【发布时间】:2014-11-22 05:52:36
【问题描述】:
我正在用 Java 编写一个数学应用程序,它使用 Javascript 进行脚本/输入。
我希望能够输入 x^2 并让 Java 在发送到 JavaScript 解析器之前将其替换为 pow(x,2)。我该如何进行这种类型的替换?在一个代码 sn-p 中可能有多个不同的此类表达式,可能是一行或多行。
【问题讨论】:
-
Java 和 JavaScript 是不同的语言,除了它们都继承自 C 的一些语法外,几乎没有任何共同之处。不要混淆它们。
-
@cdhowie 我不是。我的 Java 应用程序使用 JavaScript 解析器 (
javax.script.ScriptEngine) 来评估 JavaScript 中输入的表达式。 -
您需要考虑关联性和优先级 - 因此您需要编写一个解析器。
-
我不确定这个应用程序是干什么用的,但如果你有机会处理更复杂的表达式,包括带括号的表达式,我不会从正则表达式路径开始,除了也许如果您需要一个简单的演示原型。你可能最终只会让正则表达式变得越来越复杂,然后不得不把整个事情都扔掉。
-
你不能用正则表达式可靠地做到这一点。它根本不够强大。你需要一个真正的数学解析器。请参阅:Evaluating a math expression given in string form。
标签: java javascript regex string