Я создаю простой механизм шаблонов (в PHP), и мне нужно регулярное выражение для моего кода цикла, цикл должен выглядеть примерно так:regex php, строка соответствия с переменным текстом (буквы, цифры, подчеркивание, [])
{loop var=menu[0]}
<li><a href="{link}">{text}</a></li>
{/loop}
где «меню [0]» может быть любая строка из заглавных и строчных букв с/без подчеркивания, цифр и коробчатых скобки ([])
the '{loop var=', '}' and '{/loop}' always stay the same
Я буду использовать preg_match PHP для сделайте сравнение.
мое регулярное выражение до сих пор (что, вероятно, дико разомкнут):
/[{loop var=][\w\s_0-9\[\]][}]/
мой PHP что-то вроде этого:
function loop($template) {
preg_match($pattern, $template, $matches);
foreach ($matches as $key => $match) {
...
$var = str_replace(array('{loop var=', '}'), '', $match));
$data = $this->get($var);
...
$loop_code = str_replace('{' . $var . '}', $data, $loop_code);
...
}
}
вход мой шаблон выше, желаемый результат ниже
<ul>
<li><a href="<?php print $menu[0][0]['link']; ?>"><?php print $menu[0][0]['text']; ?></a></li>
<li><a href="<?php print $menu[0][1]['link']; ?>"><?php print $menu[0][1]['text']; ?></a></li>
</ul>
сделать это мне нужно preg_match, чтобы соответствовать любому из этих строк (в их entirity)
{loop var=menu[0]}
{loop var=menu_main}
{loop var=__menu}
{loop var=MenuMain}
Благодарим за внимание.
Пожалуйста, пост четкого образца желаемого ** выхода **. –
всего лишь один момент, пожалуйста, работая над ним – Nate
там вы идете, мой желаемый ввод и вывод – Nate