Intereting Posts
Почему строка, окруженная одинарными кавычками, не будет интерполировать имена переменных, которые она содержит в PHP, а с двойными кавычками? Какова альтернатива функции eval? .htaccess 301 перенаправление не работает? php ближайшая десятая ценность Как я могу создать определенное количество случайных значений, равное всем указанному числу в PHP? strtotime с годом в двухзначном формате Заполнение полей в модальной форме с помощью PHP, jQuery Как я могу получить параметры из Behat.yml в php-файл? PHP Warning: POST Content-Length из 8978294 байт превышает предел 8388608 байт в Unknown в строке 0 PHP. Могу ли я передать имя функции в качестве аргумента функции? Проблема Mysql и FK Как захватить полные данные запроса HTTP (заголовки и тело) с помощью PHP? Как сделать веб-страницы с одинаковым дизайном Как получить доступ к глобальной переменной в функции запуска pthread в php Альтернативы передачи ключа и значения по ссылке:

Как разобрать гетерогенную разметку с помощью PHP?

У меня есть строка с пользовательской разметкой для сохранения песен с аккордами, табулатурами, заметками и т. Д. Она содержит

вещи в разных скобках: \[.+?\] , \[[.+?\]] , \(.+?\)
стрелки: <-{3,}> , \-{3,}> , <\-{3,}
и так далее…

Пример текста может быть

 Text Text [something] ---> Text (something 021213) 

Теперь я хочу разобрать разметку в массив токенов, объектов соответствующих классов, которые будут выглядеть (согласованные части в скобках)

 ParsedBlock_Text ("Text Text ") ParsedBlock_Chord ("something") ParsedBlock_Text (" ") ParsedBlock_NewColumn ParsedBlock_Text (" text ") ParsedBlock_ChordDiagram ("something 021213") 

Я знаю, как их сопоставлять, но либо я должен соответствовать каждому другому шаблону, и сохранять смещения, чтобы правильно сортировать массив, или я сопоставляю их сразу, и я не знаю, какой из них был сопоставлен.

Спасибо, MK