Regex для сопоставления определенных функций и их аргументов в файлах

Я работаю над парсером gettext javascript, и я застрял в регулярном выражении синтаксического анализа.

Мне нужно перехватить каждый аргумент, переданный конкретному вызову метода_n( а также_(, Например, если у меня есть эти в моих файлах JavaScript:

_("foo") // want "foo"
_n("bar", "baz", 42); // want "bar", "baz", 42
_n(domain, "bux", var); // want domain, "bux", var
_( "one (optional)" ); // want "one (optional)"
apples === 0 ? _( "No apples" ) : _n("%1 apple", "%1 apples", apples) // could have on the same line two calls.. 

Это ссылка на эту документацию:http://poedit.net/trac/wiki/Doc/Keywords

Я планирую сделать это в два раза (и два регулярных выражения):

поймать все аргументы функции для_n( или же_( вызовы методовтолько ловить

По сути, я бы хотел, чтобы Regex мог сказать «поймать все после_n( или же_( и остановитьсяв последних скобках) на самом деле, когда функция выполнена, Я не знаю, если это возможно с регулярным выражением и без парсера JavaScript.

Что также можно сделать, это «поймать каждую» строку или «строку» после_n( или же_( и остановиться в конце строки ИЛИ в начале нового_n( или же_( персонаж.

Во всем, что я сделал, я застрял на_( "one (optional)" ); с внутренней скобкой илиapples === 0 ? _( "No apples" ) : _n("%1 apple", "%1 apples", apples) с двумя вызовами на одной линии.

Вот что я реализовал до сих пор с неидеальным регулярным выражением:универсальный парсер иодин JavaScript илируль один

Ответы на вопрос(6)

Ваш ответ на вопрос