Как сделать текстовый спиннер в PHP - PullRequest
0 голосов
/ 13 февраля 2011

Я пытаюсь создать синтаксический анализатор для такого рода текстов:

{{texta1|texta2|texta3} {texta11|texta22}|{textb1|textb2} {textb11|textb22}}

Мне удалось заставить это регулярное выражение ~(?<={).*?(?=})~U работать так, чтобы оно соответствовало основному содержанию внутри первого {и последнего}, но когдаЯ хочу разделить {a | b | c} | {aa | bb | cc} с разнесением. У меня возникли проблемы, поскольку он не разбивает каждый {} на отдельный массив, а разбивает каждый |, и если я разделю его, используя} |{, тогда выходной сигнал становится неработоспособным, чтобы попытаться проанализировать его для последующего вращения, вызывающего a}, и {будет отсутствовать в выходных данных.

Есть ли у кого-то метод для этого с помощью регулярного выражения или что-то подобноене требуется тонны кода?

1 Ответ

0 голосов
/ 13 февраля 2011

регулярное выражение не предназначено для построения парсеров.На этом сайте есть миллион сообщений, показывающих, почему.что-то вроде этого, может быть, больше подходит http://php.net/manual/en/function.strtok.php

...