RXParser 1.6001 - универсальный преобразователь текстовых документов
Разбор входного документа происходит по правилам, которые объявляются в файлах правил разбора.
rx - рекомендуемое расширение для таких файлов.
Файл правил состоит из отдельных правил разбора входного документа:
<Символ-ограничитель> - символ из набора [~!@#$%^&*()_+|`-=\<>?,./], [0-9a-zA-Zа-яА-Я]
<Человеческое описание> - зарезервированная для будущих версий возможность наименования <пространств имён> на понятном языке. Может заключаться в двойные """ или одинарные "'" кавычки, в обратном случае, наименование не должно содержать символ двоеточия ":".
<Пространство имён>
- это наименование пространства имён <переменных> из
<списка переменных>.
Может заключаться в двойные """ или одинарные "'" кавычки,
в обратном случае, наименование не должно содержать символы круглых скобок
"(", ")".
Рекомендуемый набор символов для наименования:
[0-9a-zA-Z_] и символ "-".
Структура <списка переменных>:
<имя переменной> - наименование переменной из данного <пространства имён>.
Имя переменной ассоциировано с массивом значений, определяемым по правилу из <тела правила>.
Имя переменной может заключаться в двойные """ или одинарные "'" кавычки, в обратном случае, наименование не должно содержать символ ":" и символ ",".
Дополнительно может указываться <ТИП обработчика> содержания, ассоциированного с данной <переменной> из заданного <пространства имён>.
<ТИП обработчика> - наименование типа обработчика содержания, ассоциированного с данной <переменной> из заданного <пространства имён>. Имя типа может заключаться в двойные """ или одинарные "'" кавычки, в обратном случае, наименование не должно содержать символ ":" и символ ",". Указание наименования типа обработчика имеет смысл если с данным наименованием ассоциирован соответствующий обработчик.
Имя | Описание |
---|---|
AS-IS | - содержание остаётся "как есть" - без дополнительной обработки. |
HTML | - содержание форматируется как часть HTML-документа: символьные константы заменяются на соответствующие символы. |
TEXT | - содержание форматируется как простой текст: удаляются теги HTML, а символьные константы заменяются на соответствующие символы. |
TEXT/ENTITY | - содержание форматируется как простой текст: удаляются теги HTML. |
DATE | - если в содержании найдена строка формата "дд.*мм.*гг", то содержание форматируется с использованием шаблона "дд.мм.гггг". В обратном случае изменений не происходит. |
LINK | - зарезервирован для будущих версий модуля. Содержание не изменяется. |
Правило разбора - это регулярное выражение языка Perl 5.8.x.
Символы, указанные неявно (нажатием клавиши ENTER на клавиатуре) "\r" (возврат каретки) и "\n" (перевод на новую строку) заменяются на шаблон "\s*" - "любое количество любых пробельных символов".
Если символы "\r" и "\n" указать явным образом (путём написания специальных обозначений этих символов "\r", "\n"), то они не будут заменены их значение останется прежним.
Части, выделенные в правиле в незаэкранированных символом "\", круглых скобках "(" и ")", будут запоминаться в соответствующей <переменной> (по порядку) из <заголовка правила> в виде массива с использованием заданного <типа обработчика>.
Напрямую инструкции для Perl можно писать так:
Задача. Вынуть из следующей части документа информацию о каждой следующей новости с помощью правил rx:
Решение:
"Новость" : pulp-fiction ( ссылка : LINK , заголовок : TEXT ). <img src="bulletlong\.gif" width="4" height="16" border="0"[^>]*> <a class="ea" href="([^"]+)"> (.+?) </a> <br> .
С помощью правил разбора указывается вид частей документа, которые следует ассоциировать с соответствующей переменной.
Следующий этап преобразования документа - составление шаблона преобразования.
[ Главная страница ] [ Правила разбора ] [ Правила сборки ]
RXParser. Автор Шатров А. С. <cdch@yandex.ru>
Краснодар, 13.03.2005