Я пытаюсь получить функции из строки ввода с помощью регулярных выражений.Получение содержимого функций с регулярным выражением
До сих пор мне удалось получить JavaScript kind of function declarations со следующим регулярным выражением:
/(\b(f|F)unction(.*?)\((.*?)\)\s*\{)/g
Что при применении, как это будет возвращать меня вся декларация по первому индексу:
var re = /(\b(f|F)unction(.*?)\((.*?)\)\s*\{)/g;
while ((m = re.exec(text)) !== null) {
//m[0] contains the function declaration
declarations.push(m[0]);
}
Теперь, Я хотел бы получить в возвращенном матче все содержимое каждой из функций, чтобы потом работать с ним (удалил, обернул его ...)
У меня нет маны Гед найти regext, чтобы сделать это, до сих пор, я получил это:
(\b(f|F)unction(.*?)\((.*?)\)\s*\{)(.*?|\n)*\}
Но, конечно же, она ловит первый закрывающую скобку }
вместо одного в конце каждой из функций.
Любая идея о том, как получить закрытие }
каждой функции?
Почему вы пытаетесь это сделать? Возможно, есть лучший способ достичь своей конечной цели? –
проверить это http://stackoverflow.com/questions/13952870/regular-expression-to-get-parameter-list-from-function-definition –
Это невозможно сделать с регулярным выражением, поскольку регулярные выражения не содержат возможности для подсчета, это то, что вам нужно, чтобы соответствовать скобкам. –