2017-03-18 58 views
0

用户输入表达式:2 + 3 -4如何在数学表达式中仅在操作数和下面的阶乘(!)运算符之间插入括号?

我想达到的目标:2+ - 4

对于这个我明白,我可以用 '的replaceAll()' 和替换!(3!)全部“!”与“!)”。这解决了右括号插入的问题,但我想知道我如何能得到“(”之前的操作数(在这种情况下,3),因为它可以是任何数字。

谢谢:)

+0

你应该看看正则表达式。 – AnixPasBesoin

+0

哦!正则表达式可以帮助这里?我会看一下。谢谢。我已经在使用MXParser库来计算表达式,所以现在认为不需要Regex。 –

回答

1

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

在Java中它应该是类似myString.replaceAll("(\d+\!)", "($1)"); $ 1是一个反向引用到orignial模式。

+0

我正在为此使用android studio。所以它的Java。 –

+0

感谢您的回答。您能否详细说明您的意思是“$ 1是对原始模式的反向引用”?我不熟悉这个词汇:) –

+0

$ 1是它找到的价值/模式。在'2 + 3!-4'的情况下,它将是'3!',因此它将用'(3!)'代替找到的模式'3!'。' –

相关问题