0

括弧に入っていない文字をどのように一致させますか? 式には、任意の数のネストされた括弧を含めることもできます。つまり、とに分割((2+3)*10)-((10+1)/2)したいのです。可能であれば、正規表現でこれを行いたいと思います。数学的な式を解析しているため、これを行う方法を知る必要があります。これがうまくいかない場合は、どうすればよいですか?((2+3)*10)((10+1)/2)

私はJavaでの解決策を好みますが、それが別の言語である場合は、おそらくそれも理解できます。

4

2 に答える 2

1

おそらく、再帰降下パーサーを使用したいと思うでしょう。 最初のリンクのウィキペディアの記事には、いくつかの良いサンプル C コードがありますが、記事といくつかのサンプル コードを次に示します。

operator-precedence parserなど、再帰降下パーサーに代わるものがありますが、学部生からの私の経験は再帰降下パーサーに関するものです (それ以来、数式を解析していません)。いずれにせよ、基本的には、演算子の優先順位に従って数式を解析しています。

于 2013-04-11T02:34:03.537 に答える