Ето го проблемът: даден е низ като
"<p>The price for vehicles {capitalize(pluralize(vehicle))} is {format_number(value, language)}</p><span>{employee_name}</span><span>\{do not parse me}</span>"
Имам нужда от (1) шаблон на регулярен израз в PHP, който съвпада с всички стойности между неекранирани двойки къдрави скоби и (2) друг шаблон на регулярен израз, който съответства на извиквания на функции и извиквания на вложени функции (след като първият шаблон бъде съпоставен) em>. Разбира се, ако можех да използвам един регулярен израз само за двете задачи, това би било страхотно.
Между другото, не мога да използвам Smarty, Twig или друга библиотека - това е единствената причина, поради която трябва сам да създам механизъм за анализ.
Благодаря много!
Solution (1) A partial solution for the first problem can be found here. Basically, we use the regex
(?={((?:[^{}]++|{(?1)})++)})and find the matches at index 1 of the resulting array.
Частично е, защото все пак трябва да намеря начин да игнорирам скритите скоби.
(2) Обмислям използването на рекурсивен регулярен израз, както е предложено от Марио. Ще публикува резултата тук.
Благодаря момчета!
(?<!\\\\)
за избягване на екранирани curlys и(?R)
рекурсивен регулярен израз< /a> ако искате да утвърдите правилното влагане на функцията. - person mario   schedule 20.08.2013