Есть некая строка, содержащая это
function dekorator($func, $agrs = [])
{
if (dd){
var_dump("Декоратор");
$func();
}
}
if (true)
{
@dekorator
function test()
{
if (ss){
var_dump("Войс");
while(){
dd
}
}
}
function dgdg()
{
var_dump("ff");
}
test();
}
Мне нужно получить следующее:
Я написал регулярное выражение:
/function?\s+(\w+)*\(([^\)]*)\).*?\{([^\}]+[^\{]+)\}/sim
Но есть одно НО, у последней функции она захватывает не ту кавычку (касающуюся не самой функции)
Сама функция
function dgdg()
{
var_dump("ff");
}
Лишнее
test();
}
DEMO: https://regex101.com/r/MTS1pr/1/
Решение:
function\W+([^\)]+)\((.*?)\)\s*(\{((?>[^{}]+|(?3))*)\})
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости