У меня есть строка типа «сумма (сумма (_))» , в которых _ может быть один или несколько (через запятую) вызов функции, строка в кавычках и т.д.Как я могу сопоставить вложенную строку функции?
//should return true
/sum\(sum\(_\)\)/.test('sum(sum(2,3,4))')
/sum\(sum\(_\)\)/.test('sum(sum(a,b,c))')
/sum\(sum\(_\)\)/.test('sum(sum(neg(2),neg(neg(3))))')
я могу на самом деле соответствуют строке и другим параметрам, но есть осложнения, когда я пытаюсь выполнить вложенные вызовы функций.
Кто-нибудь знает, как это сделать с помощью регулярного выражения или некоторой библиотеки в javascript для решения этой проблемы? Заранее спасибо.
Вы не можете сделать это с помощью одного регулярного выражения. Это возможно только при использовании двигателей регулярных выражений, которые поддерживают функцию рекурсии. –
Кажется, было бы достаточно просто написать быстрый парсер. –
@squint ok достаточно справедливо, но когда я пытаюсь разобрать содержимое, круглые скобки всегда в пути. Любой намек будет оценен, например, когда у меня есть что-то вроде этого: «div (sum (sum (2,3), 3))« – shuji