0

当你在谷歌搜索中输入如下内容:

5.5 + 0.5  * 56

谷歌计算一下

5.5 + (0.5 * 56) = 33.5

这是非常棒的正则表达式模式,但我不太擅长正则表达式:(

4

3 回答 3

1

谷歌所做的是解析数学表达式,它不使用匹配模式。

为此,您需要一个递归下降解析器:具有优先级的方程(表达式)解析器?

于 2012-05-17T05:42:52.450 回答
0

据我所知,正则表达式不能进行这样的计算......而且谷歌不会仅通过使用正则表达式来开发他的搜索引擎。要完成此类工作,您需要自己实现一个表达式计算器。几年前我开发了一个简单的,它工作得很好。在网上有大量的例子可以做到这一点......希望它有所帮助!

于 2012-05-17T05:48:25.797 回答
0

正则表达式用于根据模式搜索和操作文本。同样不是它可以识别的所有模式。它只能理解基于常规语言的模式(乔姆斯基层次结构中的 Type-3 语法)。

您在此处显示的内容是由数学表达式解析器完成的。只需谷歌它,你会发现很多免费提供。如果您正在使用的浏览器中有 JavaScript 控制台,只需使用它eval来解析表达式。

var expression = "5.5 + 0.5  * 56";
eval( expression );
// 33.5
于 2012-05-17T06:26:48.883 回答