Создание электронных книг в формате FictionBook 2.1: практическое руководство. Версия 1.0 Release Candidat 1 от 15.05.2008 г. (Кондратович) - страница 94

• Повторения (указывает, сколько раз должна присутствовать последовательность)

• Варианты (позволяет указать набор масок, с любой из которых должен совпадать текст)

• Подвыражения (используются при замене)

• Обратные ссылки (способ обратиться к подвыражениям при поиске)

Метасимволы — разделители строк и границы

Разделители и границы

^ — начало строки

$ — конец строки

\A — начало текста

\Z — конец текста

\b — Совпадает на границе слова

\B — Совпадает НЕ на границе слова


Оговорка. В FB Editor (и, скорее всего, в большинстве других программ) метасимволы \b и \B не реагируют на кириллицу.


Примеры:

^Все — Находит все строки в тексте, начинающиеся словом «Все»

\bмир — Находит все слова, начинающиеся буквосочетанием «мир». Слова будут найдены и в начале строк, и в середине.

^\x20$ — Находит все строки в тексте, состоящие из единственного пробела.


Метасимволы — стандартные перечни символов

. (точка) — Любой символ

\w — буквенно-цифровой символ или "_"

\W — не \w

\d — цифровой символ

\D — не \d

\s — любой «пробельный» символ: [\x20\t\n\r\f]

\S — не \s


Оговорка. В FB Editor (и, скорее всего, в большинстве других программ) метасимволы \w и \W не реагируют на кириллицу.


Метасимвол «.» по умолчанию совпадает с любым символом, однако, если выключить модификатор s ((?-s), синтаксис см. ниже), то «.» не будет совпадать с разделителями строк.

Стандартные перечни \w, \d и \s можно использовать и внутри перечней символов.

Примеры:

—foob[\w\s]r — —находит «foobar», «foob r», «foobbr» но не «foob1r», «foob=r»

—\+\d (\d\d\d) \d\d\d-\d\d-\d\d — —Находит телефон в формате «+7 (095) 555-55-55»


Метасимволы — повторения

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

Указание числа вхождений

* — ноль или более раз (может быть «жадным»), то же что {0,}

+ — один или более раз (может быть «жадным»), то же что {1,}

? — ноль или один раз (может быть «жадным»), то же что {0,1}

{n} — точно n раз (может быть «жадным»)

{n,} — не менее n раз (может быть «жадным»)

{n,m} — не менее n но не более m раз (может быть «жадным»)

*? — ноль или более раз («не жадный»), то же что {0,}?

+? — один или более раз («не жадный»), то же что {1,}?

?? — ноль или один раз («не жадный»), то же что {0,1}?

{n}? — точно n раз («не жадный»)

{n,}? — не менее n раз («не жадный»)

{n,m}? — не менее n но не более m раз («не жадный»)


Т.о. {n,m} задает минимум n повторов и максимум — m. Повторитель {n} эквивалентен {n,n} и задает точно n повторов. Повторитель {n,} задает минимум n повторов. Теоретически величина параметров n и m не ограничена, но рекомендуется не задавать большие значения, поскольку в некоторых ситуациях это может потребовать существенных затрат времени и ОЗУ при обработке такого повторителя.