Я пытаюсь проанализировать параметры формул Excel, таких как «= a (b)», «= a (b, c)», «= a (b, c, d)». Я хотел бы извлечь имя функции "a" и параметры "b", "c" и "d".
В SO есть множество примеров для анализа HTML и т. д., но ни одного специально для круглых скобок.
Пока у меня есть "=(.+)\(([^,)]*)(,[^,)]*)*\)"
, но когда я анализирую "=a(b,c,d)"
, он помещает "a" в match(1), "b" в match(2) и ",d" в match(3). Итак, «с» теряется, а запятая перед «д» — это боль.
Как я могу разобрать подобную строку с произвольным количеством параметров, в идеале опуская запятые?
Возможность разобрать "=a(b(c),d(e(f)))" была бы здорово...
Изменить: я знаю, что синтаксический анализатор является правильным решением, и я использовал отличный анализатор Gold от Девина Кука с великолепным результаты раньше.
Однако конкретный случай, с которым я сталкиваюсь, заключается в извлечении аргументов из известной формулы Excel. В частности, если формула содержит строку "=Travel()", я знаю, что у нее будет 4 аргумента, и если они не анализируются, это не проблема. Это просто "приятно иметь" функция, которая может время от времени давать сбой, но не является проблемой.
Может ли кто-нибудь помочь мне с регулярным выражением для "=a(b,c,d)", "=a(b,c,d,e)" и т.д., с ограничением, что будет no< /strong> вложенные скобки или запятые?
Спасибо!