7(7+(7 (7+1)))(7)
のような角括弧で数式を実行するのは難しいです。私はeval()
を私の仕事でやっています。私はこれを7*(7+(7*(7+1)))*(7)
に変換することを解決すると思った。私は正規表現に'*('
を回避し、方法を置き換えるため'('
を受け入れるように括弧で囲まれた文字列から数学演算を実行するにはどうすればよいですか?
/(?!\*\()(\()/g
を試してみましたが、私は失敗します。 (
の前に*
を挿入することを考えています。 7(7+(7 (7+1)))(7)
を正しく実行するにはどうすればよいですか?私は電卓プロジェクトのためにこれをやっています。
であなたの実際のコード(適切にインデント)であなたの答えを更新してくださいし、 – Soviut
実際に '*'を適切な場所に挿入する必要があります。 'eval'を使用するのではなくて(これは大きな問題になります。あなたがもっと制限されたパーサーを実装するのを見てきましたか?正規表現と同様ですが、より深いところです。 eを括弧で囲んで、解析コードの一部として乗算を示します。それは[jison](http://zaa.ch/jison/)が良い(それは電卓の例を持っている)も良いようです。 – JAB