用户输入表达式:2 + 3 -4如何在数学表达式中仅在操作数和下面的阶乘(!)运算符之间插入括号?
我想达到的目标:2+ - 4
对于这个我明白,我可以用 '的replaceAll()' 和替换!(3!)全部“!”与“!)”。这解决了右括号插入的问题,但我想知道我如何能得到“(”之前的操作数(在这种情况下,3),因为它可以是任何数字。
谢谢:)
用户输入表达式:2 + 3 -4如何在数学表达式中仅在操作数和下面的阶乘(!)运算符之间插入括号?
我想达到的目标:2+ - 4
对于这个我明白,我可以用 '的replaceAll()' 和替换!(3!)全部“!”与“!)”。这解决了右括号插入的问题,但我想知道我如何能得到“(”之前的操作数(在这种情况下,3),因为它可以是任何数字。
谢谢:)
您可以使用这个正则表达式/(\d+\!)/g
使用阶乘来查找零件。实施取决于您使用的语言。
在Java中它应该是类似myString.replaceAll("(\d+\!)", "($1)");
$ 1是一个反向引用到orignial模式。
我正在为此使用android studio。所以它的Java。 –
感谢您的回答。您能否详细说明您的意思是“$ 1是对原始模式的反向引用”?我不熟悉这个词汇:) –
$ 1是它找到的价值/模式。在'2 + 3!-4'的情况下,它将是'3!',因此它将用'(3!)'代替找到的模式'3!'。' –
你应该看看正则表达式。 – AnixPasBesoin
哦!正则表达式可以帮助这里?我会看一下。谢谢。我已经在使用MXParser库来计算表达式,所以现在认为不需要Regex。 –