あなたがグーグル検索を入力するとき、このようなもの:
5.5 + 0.5 * 56
グーグルはそれを計算します
5.5 + (0.5 * 56) = 33.5
これは本当に素晴らしい正規表現パターンですが、私は正規表現があまり得意ではありません:(
Google が行うのは数式の解析であり、マッチング パターンは使用しません。
これには再帰降下パーサーが必要です:優先順位を持つ方程式 (式) パーサー?
私の知る限り、正規表現はこのような計算を行うことはできません...そして、Google は正規表現のみを使用して検索エンジンを開発していません。この種のジョブを実行するには、式計算機を自分で実装する必要があります。何年も前に、私は単純なものを開発しましたが、それは非常にうまく機能しました。ネット上には、それを行うための膨大な数の例があります...うまくいくことを願っています!
正規表現は、パターンに基づいてテキストを検索および操作するためのものです。繰り返しますが、すべてのパターンを認識できるわけではありません。正規言語(チョムスキー階層の Type-3 文法) に基づくパターンのみを理解できます。
ここで示しているのは、数式パーサーによって行われます。グーグルで検索すると、無料で入手できるものがたくさん見つかります。使用しているブラウザーに JavaScript コンソールがある場合はeval
、式を解析するために使用します。
var expression = "5.5 + 0.5 * 56";
eval( expression );
// 33.5