如何使用正则表达式验证数学公式字符串?

时间:2014-02-27 08:43:12

标签: java regex math

我有一个文本框来输入数学公式包括+-*/(,)TRUNC,{ {1}},ROUNDPOWERMODSQRTFLOOR。用户输入公式字符串后,我想验证这个字符串,但我不知道如何??? 请帮帮我。

2 个答案:

答案 0 :(得分:2)

很遗憾,您无法使用正则表达式验证此类表达式。正则表达式的本质是这样的,你永远不能验证匹配的括号。正则表达式只是虚弱。

有关详情,请参阅:http://en.wikipedia.org/wiki/Regular_expression

为了验证/解析或评估数学表达式,您需要一个无上下文语法分析器。您可以使用解析器生成器之一生成一个相对简单的方法。我会推荐

上下文无关语法:http://en.wikipedia.org/wiki/Context-free_language

答案 1 :(得分:0)

看看this question on Code Review。它显示了一些用于解析此类表达式的代码,答案给出了如何使用Java附带的脚本引擎的示例。