Android 如何仅在数学表达式中的操作数和以下阶乘(!)运算符周围插入括号?

Android 如何仅在数学表达式中的操作数和以下阶乘(!)运算符周围插入括号?,android,expression,factorial,insertion,Android,Expression,Factorial,Insertion,用户输入的表达式:2+3-四, 我想要达到的目标:2+(3!)-4 为此,我理解我可以使用'replaceAll()'并将所有“!”替换为“!)”。这解决了右括号插入问题,但我想知道如何在操作数(在本例中为3)之前获取“(”,因为它可以是任何数字 谢谢:)您可以使用此正则表达式/(\d+\!)/g使用阶乘查找零件。实现取决于您使用的语言 在Java中,它应该类似于myString.replaceAll(“(\d+\!”,“($1)”) $1是对原始模式的反向引用。您应该看看正则表达式。哦!正则表

用户输入的表达式:2+3-四,

我想要达到的目标:2+(3!)-4

为此,我理解我可以使用'replaceAll()'并将所有“!”替换为“!)”。这解决了右括号插入问题,但我想知道如何在操作数(在本例中为3)之前获取“(”,因为它可以是任何数字


谢谢:)

您可以使用此正则表达式
/(\d+\!)/g
使用阶乘查找零件。实现取决于您使用的语言

在Java中,它应该类似于
myString.replaceAll(“(\d+\!”,“($1)”)

$1是对原始模式的反向引用。

您应该看看正则表达式。哦!正则表达式在这里有帮助吗?我去看看。非常感谢。我已经在使用MXParser库来计算表达式,所以我现在不需要正则表达式。我正在使用android studio。这就是java。谢谢你的回答。你能详细解释一下你所说的“1美元是对原始模式的反向引用”是什么意思吗?我还不太熟悉这个词汇:)$1是它找到的值/模式。如果
2+3-4
那就是
3因此它将替换找到的模式
3使用
(3!)
非常感谢!这是一个很好的解决方案。我甚至不需要单独替换“!”,因为它在一行中完成所有操作。快速简单:)如果我想做(!3),我该怎么做。这只是为了扩大我对正则表达式的理解。使用“(\!+\d)”可以吗?