我正在开发一个java程序,它将找到给定函数的集成。例如cos(x + 3x ^ 2)。现在我想检查用户是否给出了正确的输入..是否有任何正则表达式,我们可以在检查输入的有效性时使用?例如,输入必须始终以积分符号开头并以dx结尾。我想要正则表达式,它将涵盖cos(cos(x + 5))等案例
答案 0 :(得分:4)
你不能使用正则表达式来检查任何需要计数的东西:它不够强大。理论上不可能使用正则表达式来验证字符串中括号是否平衡的更简单问题。
您需要为表达式构建解析器。一个简单的自上而下的解析器可以做,或者你可以使用解析器生成器,如ANTLR或JavaCC。您还可以使用其中一个可用的open source expression languages作为项目。