need some help

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

Alix

Гуру форума
Регистрация
27 Янв 2008
Сообщения
234
Реакции
86
Всем привет!
Исходный текст - {Text1|Text2|Text3} random-random {string1|string2|string3}.
Задача - распарсить текст таким образом, чтобы с помощью одной регулярки получить в результате массив со всеми вхожденими в скобках {} и слова без вертикальной черты |
Вот такой вариант отрабатывает лишь фигурные скобки:
{((\w*)\|?)*}
 
Нет, на выходе нужно лишь {Text1|Text2|Text3} и соотвественно отдельно Text1, Text2, Text3. Добрался до вот такого варианта
{(\w+\|?)*}
но он возвращает только последнее вхождение (Text3, string3), а надо чтобы возвращал все.

Пока что выкрутился другим, менее элегантным способом. Но все еще рад выслушать идеи на этот счет.
 
PHP:
preg_match_all('~(?<=[{|])[^{|}]+?(?=[|}])~', $text, $m);
print_r($m);
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху