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