Создание электронных книг в формате FictionBook 2.1: практическое руководство (beta 4)
Добавить в закладки К обложке
- Предуведомление - Страница 1
- Предисловие - Страница 2
- Введение - Страница 3
- Часть I Формат FictionBook и его место в мире электронной литературы - Страница 4
- § 1.2 Многообразие форматов электронных книг - Страница 5
- § 1.3 Несколько слов о XML - Страница 9
- § 1.4 Формат FictionBook — стандарт де-факто для электронных книг - Страница 10
- Часть II Подробное описание формата FictionBook - Страница 12
- § 2.2 Пример книги в формате FictionBook - Страница 13
- § 2.3 Элементы описания книги. Базовые структурные элементы - Страница 15
- § 2.4 Элементы описания книги (description). Элементы первого уровня - Страница 17
- § 2.5 Элементы описания книги (description). Элементы второго уровня - Страница 19
- § 2.6 Элементы описания книги (description). Элементы третьего уровня (информация об авторе) - Страница 24
- § 2.7 Элементы тела книги (body). - Страница 25
- § 2.8 Элементы раздела книги (section). Элементы первого уровня. - Страница 26
- § 2.9 Элементы раздела книги (section). Элементы второго уровня. - Страница 28
- § 2.10 Элементы таблиц - Страница 29
- § 2.11 Элементы абзаца (стилевые элементы) - Страница 30
- § 2.12 Элементы для платных книг - Страница 33
- § 2.13 Спецсимволы - Страница 34
- § 2.14 Список атрибутов элементов - Страница 35
- § 2.15 Алфавитный список всех элементов FictionBook 2.1 - Страница 37
- Часть III Конвертирование книг из других форматов - Страница 38
- § 3.1 Требования к исходному тексту - Страница 39
- § 3.2 Any to FB2 - Страница 40
- § 3.3 ExportXML - Страница 43
- § 3.4 doc2fb - Страница 44
- § 3.5 Перенос через буфер обмена - Страница 45
- § 3.6 Конвертор ExportToFB21 для Open Office - Страница 46
- Часть IV Редактирование книг. FB Editor - Страница 47
- § 4.1 Установка программы - Страница 48
- § 4.2 Описание функций и основные приемы работы - Страница 49
- § 4.3 Заполнение заголовка книги - Страница 51
- § 4.4 Структурирование документа - Страница 53
- § 4.5 Использование регулярных выражений - Страница 58
- § 4.6 Использование скриптов - Страница 59
- § 4.7 Баги с нами! - Страница 60
- § 4.8 Дальнейшее развитие редактора - Страница 61
- Часть V Прочие вопросы создания книг в формате FictionBook - Страница 62
- § 5.2 Подготовка картинок - Страница 64
- § 5.3 Обложки - Страница 66
- § 5.4 Сборник или по отдельности? - Страница 67
- § 5.5 Советы по вычитке книг - Страница 68
- § 5.6 Символы, которых нет на клавиатуре - Страница 70
- § 5.7 Высокое искусство аннотации - Страница 71
- Часть VI Просмотр и конвертирование книг в формате FictionBook - Страница 72
- § 6.1 Читалки - Страница 73
- § 6.2 Пакет FB2Any - Страница 75
- Часть VII Прочее программное обеспечение для работы с FictionBook - Страница 77
- § 7.2 Утилита Booki - Страница 81
- § 7.3 Программа-библиотекарь JEFLibrarian - Страница 82
- Заключение. Копирайт и доступность - Страница 83
- Благодарности - Страница 87
- Обратная связь - Страница 88
- Приложения - Страница 89
- Приложение Б Техническое задание на написание читалки (ридера) - Страница 90
- Приложение В Список жанров FictionBook - Страница 91
- Приложение Г Список возможных языков - Страница 93
- Приложение Д Регулярные выражения - Страница 94
§ 4.5 Использование регулярных выражений
Функции поиска и замены в FB Editor предусматривают использование регулярных выражений (Regular Expressions, RegExp).
Регулярные выражения представляют собой квазиязык, объединяющий набор шаблонов и подстановок, используемых при поиске и замене фрагментов текста. Это очень мощный инструмент, кардинально облегчающий обработку текстовых документов.
Синтаксис регулярных выражений в FB Editor заимствован из языка Perl.
В приложении к книге дано краткое описание синтаксиса регулярных выражений, использующихся в FB Editor. Однако, настоятельно рекомендую этим не ограничиваться, а прочитать хороший учебник по языку Perl. А еще есть замечательная книга Дж. Фридла: «Регулярные выражения». Хорошенько поискав, ее можно найти в Сети ;)).
Рассмотрим использование регулярных выражений на примере достаточно сложной, но часто встречающейся задачи — замены компьютерных кавычек «""» на типографские „«»“.
Основная проблема здесь в том, что открывающие и закрывающие компьютерные кавычки одинаковы. Поэтому приходится ориентироваться по символам, расположенным рядом.
Обычным способом придется вызывать команду поиска\замены не менее десяти раз, рискуя что-то забыть или перепутать. Регулярные выражения позволяют произвести все замены за четыре захода.
Для начала примем за аксиому, что кавычка, расположенная в самом начале абзаца — открывающая, а в самом конце — закрывающая.
Вызываем команду Edit\Replace.
В поле поиска «Find what:» вводим конструкцию для поиска:
^"
В поле замены «Replace with:» вводим конструкцию замены. В этом случае она совсем простая:
«
Не забыв установить флажок «Regular expression», нажимаем кнопку«Replace All».
Аналогично, для кавычки в конце абзаца конструкции поиска и замены будут:
"$
и
»
Выражения «^» и «$» называются литералами и обозначают начало и конец строки соответственно. В конструкции замены они не нужны.
Теперь обработаем оставшиеся кавычки.
Начнем с открывающей кавычки. Перед ними обычно идет пробел. Ну, иногда еще дефис или скобка.
Конструкция для поиска будет такая:
([\s\(-])"
Конструкция замены:
$1«
В квадратных скобках мы перечислили символы, один из которых может идти перед искомой кавычкой. Литерал «\s» обозначает пробельный символ. Символ «скобка» является зарезервированным, так как используется в самих конструкциях регулярных выражений, поэтому, чтобы искать его в тексте, мы отделили его косой чертой. Заключив все это в круглые скобки, мы образовали выражение, к которому будем обращаться из строки замены. И в конце непосредственно сама искомая кавычка.
Символ, который идет перед кавычкой, нужно оставить в неприкосновенности. Поэтому в поле замены вводится обращение к выражению в строке поиска — $1.
Теперь закрывающая кавычка. После нее могут идти: пробел, запятая, точка, закрывающая скобка, вопросительный знак, восклицательный знак, дефис, символ «многоточие».
Конструкция поиска:
(\S)"([\s\!\.\)-…,?:;])
Конструкция замены:
$1»$2
Здесь используется два выражения. Первое означает, что перед закрывающей кавычкой должен идти НЕ пробел. Второе выражение содержит перечисление символов, которые могут идти после нее. Соответственно, в конструкции замены идет обращение к двум выражениям.
Напоследлк должен заострить ваше внимание, что в режиме исходника FB Editor регулярные выражения функционирует несколько по-другому. В частности, не получается использовать метасимвол «|», некорректно обрабатываются перечни, содержащие кириллицу.