我一直在尝试翻译这个
funcFormat = funcFormat.gsub(/sqrt\((.*)\)/,'Math.sqrt(\1)')
在java中对此
funcFormat = funcFormat.replaceAll("sqrt((.*))","Math.sqrt($1)");
或者有什么方法可以将数学格式化为文本?例如:
2x^2sqrt(x^3/2) 到 2xpow2sqrt(xpow3/2)
谢谢你,顺便说一句,我是这个网站的新手。
您可以使用以下表达式:
funcFormat = funcFormat.replaceAll("sqrt\\(([^)]*)\\)", "Math.sqrt($1)");
尽管您似乎在这里不需要正则表达式。一个简单的
funcFormat = funcFormat.replace("sqrt", "Math.sqrt");
似乎也适用于您的情况。
虽然给定的示例并不真正需要正则表达式,但我的需要. 如果您确实需要正则表达式,那么您正在寻找的方法是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)