romy4
invoke [brain]
рекурсивный поиск в PCRE
Допустим, имеется на входе такая строка
Как видно, в ней есть рекурсивный подвызов {?system title?}. как сделать, чтобы выделить и разобрать все внутренние вхождения (их может быть бесконечное число).
я написал:
Но это работает только с одиночными символами {}, а необходимо, чтобы он ловил {? и ?}.
Я думал сделать (?>[^{}]+) как (?>(?!{\?|\?}).+), но получает ерунда.
Допустим, имеется на входе такая строка
PHP:
$ps="{?plugin=\"foo\" link=\"http://example.com/\" value={?system title?} title=\"go\"?}";
я написал:
PHP:
preg_match("/{(((?>[^{}]+)|(?R))*)}/",$ps,$matches);
Я думал сделать (?>[^{}]+) как (?>(?!{\?|\?}).+), но получает ерунда.
?>.*?)(?R)*).*)\?}~