3

我一直在尝试翻译这个

    funcFormat = funcFormat.gsub(/sqrt\((.*)\)/,'Math.sqrt(\1)')

在java中对此

    funcFormat = funcFormat.replaceAll("sqrt((.*))","Math.sqrt($1)"); 

或者有什么方法可以将数学格式化为文本?例如:

2x^2sqrt(x^3/2) 到 2xpow2sqrt(xpow3/2)

谢谢你,顺便说一句,我是这个网站的新手。

4

2 回答 2

5

您可以使用以下表达式:

funcFormat = funcFormat.replaceAll("sqrt\\(([^)]*)\\)", "Math.sqrt($1)");

尽管您似乎在这里不需要正则表达式。一个简单的

funcFormat = funcFormat.replace("sqrt", "Math.sqrt");

似乎也适用于您的情况。

于 2013-05-14T19:11:54.560 回答
1

虽然给定的示例并不真正需要正则表达式,但我的需要. 如果您确实需要正则表达式,那么您正在寻找的方法是String.replaceAll(如您所述)。RubyString#sub对应的 java 版本是String.replaceFirst.

总之:

              Ruby              |               Java
---------------------------------------------------------------------------------------
String#sub (regex, replacement) | String.replaceFirst(String regex, String replacement)
String#gsub(regex, replacement) | String.replaceAll  (String regex, String replacement)
于 2018-02-26T20:51:04.387 回答