0

あなたがグーグル検索を入力するとき、このようなもの:

5.5 + 0.5  * 56

グーグルはそれを計算します

5.5 + (0.5 * 56) = 33.5

これは本当に素晴らしい正規表現パターンですが、私は正規表現があまり得意ではありません:(

4

3 に答える 3

1

Google が行うのは数式の解析であり、マッチング パターンは使用しません。

これには再帰降下パーサーが必要です:優先順位を持つ方程式 (式) パーサー?

于 2012-05-17T05:42:52.450 に答える
0

私の知る限り、正規表現はこのような計算を行うことはできません...そして、Google は正規表現のみを使用して検索エンジンを開発していません。この種のジョブを実行するには、式計算機を自分で実装する必要があります。何年も前に、私は単純なものを開発しましたが、それは非常にうまく機能しました。ネット上には、それを行うための膨大な数の例があります...うまくいくことを願っています!

于 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 に答える