Java中简单数学方程解析器的正则表达式



当前学习java,并试图解析有效输入的数学方程:

例如,用户必须以形式输入整数:

操作数操作员操作数

按照该特定顺序,该程序将需要能够分辨出输入是否为该形式,然后处理简单方程。

一个例子是:

4 * 8,结果将为32

该程序还将拒绝45.6 * 0.3或45 3/4

为此,我是否必须使用正则表达式或其他循环的其他方法?

您可以一方面使用Regex,摆脱无效的输入,另一方面使用组来提取操作数和操作,并应用数学

/^(\d+)\s*([+\-*\/])\s*(\d+)$/

编辑

正如Rory Daulton所指出的那样,签名的整数被排除在上述正则义务中,因此应使用以下的整数

/^([+\-]?\d+)\s*([+\-*\/])\s*([+\-]?\d+)$/

看一下:https://stackoverflow.com/a/11009403/8701820

^([-+/*]d+(.d+)?)*

您还可以检查此网站:https://regex101.com

最新更新