Conversion d'un ancien programme en site ASP.NET C#.Chaîne rapide Remplacer par un caractère générique
J'ai une table pleine de fonctions et une table pleine de variables avec leurs valeurs correspondantes. J'ai écrit une fonction pour évaluer les réponses, mais besoin de formater les formules pour passer la variable dans
Par exemple:.
V(totalValue) * V(CoFriction(s)) ==> V("totalValue") * V("CoFriction(s)")
Comment puis-je remplacer le V(<variable>)
-V("<variable>")
. Les parenthèses imbriquées sont possibles!
J'ai essayé la regexp comme - V\([^\(\)]+\)
seulement pour échouer sur le parent imbriqué.
Eh bien, si les parenthèses imbriquées sont permises/possibles, comment détermineriez-vous quand la valeur est un littéral de chaîne et quand ce n'est pas le cas? Qu'est-ce que cela signifierait quand une fonction qui doit être traitée comme un littéral de chaîne a une autre fonction en tant que paramètre qui doit également être traitée comme une chaîne littérale? Il me semble que vous avez besoin d'écrire un analyseur de descente récursif simple qui, dès qu'il trouve un nom de fonction dont il a connaissance, commence la correspondance des parenthèses jusqu'à ce que le crochet de fermeture soit trouvé et entoure tout le lot de virgules inversées. Sinon, vous devrez évaluer les fonctions nommées au moment de l'exécution. – Kell