Шрифт:
В приложении к книге дано краткое описание синтаксиса регулярных выражений, использующихся в FB Editor. Однако, настоятельно рекомендую этим не ограничиваться, а прочитать хороший учебник по языку Perl. А еще есть замечательная книга Дж. Фридла: «Регулярные выражения». Хорошенько поискав, ее можно найти в Сети ;)).
Рассмотрим использование регулярных выражений на примере достаточно сложной, но часто встречающейся задачи — замены компьютерных кавычек «""» на типографские „«»“.
Основная проблема здесь в том, что открывающие и закрывающие компьютерные кавычки одинаковы. Поэтому приходится ориентироваться по символам, расположенным рядом.
Обычным способом придется вызывать команду поиска\замены не менее десяти раз, рискуя что-то забыть или перепутать. Регулярные выражения позволяют произвести все замены за четыре захода.
Для начала примем за аксиому, что кавычка, расположенная в самом начале абзаца — открывающая, а в самом конце — закрывающая.
Вызываем команду Edit\Replace.
В поле поиска «Find what:» вводим конструкцию для поиска:
^"
В поле замены «Replace with:» вводим конструкцию замены. В этом случае она совсем простая:
«
Не забыв установить флажок «Regular expression», нажимаем кнопку«Replace All».
Аналогично, для кавычки в конце абзаца конструкции поиска и замены будут:
"$
и
»
Выражения «^» и «$» называются литералами и обозначают начало и конец строки соответственно. В конструкции замены они не нужны.
Теперь обработаем оставшиеся кавычки.
Начнем с открывающей кавычки. Перед ними обычно идет пробел. Ну, иногда еще дефис или скобка.
Конструкция для поиска будет такая:
([\s\(-])"
Конструкция замены:
$1«
В квадратных скобках мы перечислили символы, один из которых может идти перед искомой кавычкой. Литерал «\s» обозначает пробельный символ. Символ «скобка» является зарезервированным, так как используется в самих конструкциях регулярных выражений, поэтому, чтобы искать его в тексте, мы отделили его косой чертой. Заключив все это в круглые скобки, мы образовали выражение, к которому будем обращаться из строки замены. И в конце непосредственно сама искомая кавычка.
Символ, который идет перед кавычкой, нужно оставить в неприкосновенности. Поэтому в поле замены вводится обращение к выражению в строке поиска — $1.
Теперь закрывающая кавычка. После нее могут идти: пробел, запятая, точка, закрывающая скобка, вопросительный знак, восклицательный знак, дефис, символ «многоточие».
Конструкция поиска:
(\S)"([\s\!\.\)-…,?:;])
Конструкция замены:
$1»$2
Здесь используется два выражения. Первое означает, что перед закрывающей кавычкой должен идти НЕ пробел. Второе выражение содержит перечисление символов, которые могут идти после нее. Соответственно, в конструкции замены идет обращение к двум выражениям.
Напоследлк должен заострить ваше внимание, что в режиме исходника FB Editor регулярные выражения функционируют несколько по-другому. В частности, не получается использовать метасимвол «|», некорректно обрабатываются перечни, содержащие кириллицу.
§ 4.6 Использование скриптов
Автор FB Editor предусмотрел расширение его возможностей при помощи Java Script.
Вызываются они из меню Tools\Scripts\[скрипт].
Первые девять скриптов можно вызывать клавишами Ctrl+1…9.
Документации, разумеется, не предусмотрено никакой. Во всем придется разбираться самостоятельно.
Поэтому, перед тем, как заняться написанием скриптов, необходимо проштудировать хороший справочник по функциям JavaScript с примерами.
Очень подробный справочник входит в состав MSDN Library. Много полезной информации можно найти также на W3SCHOOLS.
Из бумажных изданий могу посоветовать «JavaScript и DHTML: сборник рецептов» Дэнни Гудмана (доступна в Сети) и «Полный справочник по JavaScript» Фрица Шнайдера. Обе эти книги издавались на русском языке.
Если английский язык для вас не проблема, а средство общения, то на уже упоминавшемся www.flazx.com вы сможете бесплатно скачать множество руководств по JavaScript. Среди них хочу особо выделить JavaScript: The Definitive Guide. Книга выдержала уже пять изданий.
Компактный и информативный справочник по JavaScript входил в состав редактора FB Writer (см. ниже)
В газетной публикации я приводил два простеньких скрипта собственного изготовления.
Здесь такой необходимости нет. Как пример, рекомендую посмотреть скрипты, написанные для FB Writer, моим земляком, известным на форуме FictionBook.org под ником Sclex.