"Создание электронных книг в формате FictionBook 2.1" - читать интересную книгу автора (Кондратович М.И.)§ 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« В квадратных скобках мы перечислили символы, Символ, который идет перед кавычкой, нужно оставить в неприкосновенности. Поэтому в поле замены вводится обращение к выражению в строке поиска — $1. Теперь закрывающая кавычка. После нее могут идти: пробел, запятая, точка, закрывающая скобка, вопросительный знак, восклицательный знак, дефис, символ «многоточие». Конструкция поиска: (\S)"([\s\!\.\)-…,?:;]) Конструкция замены: $1»$2 Здесь используется два выражения. Первое означает, что перед закрывающей кавычкой должен идти НЕ пробел. Второе выражение содержит перечисление символов, которые могут идти после нее. Соответственно, в конструкции замены идет обращение к двум выражениям. |
||
|