Преобразование старой программы в сайт ASP.NET C#.Быстрая строка с подстановочным знаком
У меня есть таблица, полная функций и таблица с переменными с их соответствующими значениями. Я написал функцию, чтобы оценить ответы, но нужно форматировать формулы для того, чтобы передать переменную в
Например:.
V(totalValue) * V(CoFriction(s)) ==> V("totalValue") * V("CoFriction(s)")
Как я могу заменить V(<variable>)
на V("<variable>")
. Вложенные скобки возможны!
Я пробовал regexp like - V\([^\(\)]+\)
только для отказа на вложенном паре.
Ну, если вложенные скобки разрешены/возможны, как бы вы определили, когда значение является строковым литералом, а когда нет? Что это значит, когда функция, которая должна рассматриваться как строковый литерал, имеет другую функцию как параметр, который также должен рассматриваться как строковый литерал? Мне кажется, что вам нужно написать простой рекурсивный синтаксический анализатор спуска, который, как только он найдет имя функции, о котором он знает, начинает скобки, до тех пор, пока не будет найдена закрывающая скобка, и окружает весь участок с помощью перевернутых запятых. В противном случае вам придется оценивать именованные функции во время выполнения. – Kell