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

<(p|div)>.* — найдет все корректно закрытые параграфы. Так же найдутся и включения вида

TEXT

, так что это выражение можно применять только на однородном тексте. Как альтернативный вариант можно предположить (
.*
|

.*

)

Заметьте, что применив то же выражение в жадном режиме (?g)<(p|div)>.* мы не найдем ничего полезного.


Оговорка. Выражения с метасимволом «|» в FB Editor в режиме исходника НЕ ФУНКЦИОНИРУЮТ.


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

У скобок в регулярных выражениях двоякая функция

1. Скобки позволяют группировать элементы (аналогично математическому использованию)

2. Скобки выделяют в исходном тексте подвыражения, на которые можно ссылаться при замене.

Вы можете обратиться к любому подвыражению в строке замены используя его номер. Подвыражения нумеруются слева направо, в порядке появления открывающих скобок. Ссылка осуществляется в виде $N, где N-номер.

Примеры группировки:

(проба){8,10} — находит строку содержащую 8, 9 или 10 копий «проба»

про([0-9]|б+)а — находит «про0а», «про1а» , «проба», «пробба», и т.д.

Примеры замены:

(.*)

—>>—
$1
— Заменит все параграфы на разделы

((\+\d )?\(\d{3}\) )?(\d{3}(-\d\d){2}) —>>— $3 — Найдет в любом телефонном номере вида «+7 (095) 555-55-55» последнюю часть «555-55-55»

(?g)([\s\(]|\A|
)(http://|ftp://|https://)([^\s\)"'<>]+) —>>— $1$2$3 — Такая замена преобразует все URL, встреченные в тексте, в гиперссылки.

(?g)([\s\(]|\A|
)(www.)([^\s\)"'<>]+)—>>—$1$2$3 — Преобразует все строки типа www.domain.root в гиперссылки


Метасимволы — обратные ссылки

Метасимволы от \1 до \9 воспринимаются как обратные ссылки. \N совпадает с ранее найденным подвыражением #N. В отличие от случая с заменой, где используются переменные $N, обратные ссылки можно применять в выражении поиска.

Примеры группировки:

(.)\1+ — находит «aaaa» и «cc»

(.+)\1+ — также находит «abab» и «123123»

(['"]?)(\d+)\1 — находит «"13"» (в дв.кавычках), или «'4'» (в один.кавычках) или 77 (без кавычек)


Модификаторы

Модификаторы служат для изменения режимов работы регулярных выражений. Они вводятся в виде (?imsgr-imsgr). Если модификатор вписан после минуса — он отключается, если нет — включается. Модификаторы подвержены группировке (в Perl нет), можно применить модификатор для отдельного участка выражения (см. пример).

Модификаторы:

i — Регистро-независимый режим. Использует выбранный в ОС язык по умолчанию. По умолчанию выключено.

m — Воспринимать входной текст как многострочный, при этом метасимволы ^ и $ будут совпадать не только в начале и конце текста в целом, но и в начале и в конце всех имеющихся в тексте строк (см. также Разделители строк). По умолчанию включено.