ブラケットを正しく分割する式ハンドラを作成しようとしていますが、今日まではうまくいきましたが、今考えていなかった問題が発生しました。ブラケットを含む式を正しく分割する方法
最初に角括弧の内容で式を分割しようとしますが、これらが評価されたら、元のコンテンツを結果に置き換え、角括弧が残らなくなるまで処理します。
この式には、マルコス/変数が含まれている場合があります。マクロは、$ macro $で囲まれたテキストで示されます。
典型的な発現:
ブラケットにより分割式、これはもたらす:式が評価される前
($exampleA$ * 3) + ($exampleB$/2)
マクロは、以下のような処理であるため、上記正常に動作し、置換されています2つの式:
$exampleA$ * 3 $exampleB$/2
各式
9 + 3
任意の括弧なしの最終的な表現は、その後に評価される:
発現は、結果を使用して再構築され$exampleA$ * 3 = 3 * 3 = 9 $exampleB$/2 = 6/2 = 3
:exampleA = 3とexampleB = 6の場合、その後、評価されます
12
これは、ネストされたブラケットで表現されるまで正常に動作します使用されている:
((($exampleA$ * 3) + ($exampleB$/2) * 2) - 1)
これは私が使用している正規表現ので、完全に壊す:中
regex("(?<=\\()[^)]*(?=\\))");
結果:
($exampleA$ * 3
$exampleB$/2
は、どのように私は正しく私が欲しい、これをデコードすることができます上に分けられる:
$exampleA$ * 3
$exampleB$/2
ありがとう、それは誤植でした。 – SPlatten
私の答えは助けてくれますか?私がしたのは、部分式の中で括弧を開くことができないことだけでした。 –