Помогите с регуляркой для вложенных списков

Статус
В этой теме нельзя размещать новые ответы.

itex

Гуру форума
Регистрация
15 Ноя 2007
Сообщения
272
Реакции
66
Помогите пожалуйста составить регулярку для вложенных списков вида {текст|другой текст }
Код:
{первый|первый|{второй|второй|второй|{третий|третий}}|первый|первый}
Первый, второй, третий - это уровни вложенности.
Как сделать регуляркой парсинг, причем чтоб уровней вложенности было сколько угодно много?:bc:
 
Язык какой?
 
<?php
$text='{первый1|первый2|{второй1|второй2|второй3|{третий|третий2}}|первый3|первый4} {далее1|далее2}';
$flag=true;

while($flag) {
$flag=false;
$text=preg_replace_callback('#{[^{}]*}#', 'replace', $text);
}

function replace($m) {
global $flag;
$a=explode('|', substr($m[0], 1, -1));
$flag=true;
return $a[rand(0, count($a)-1)];
}

print $text;
 
  • Нравится
Реакции: itex
То, что и хотел, железно работает, благодарю.:ay:
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху