Контексты поиска/замены для выборки одной строки задаются обычным образом, а для поиска блока редактирования, который может включать несколько файловых строк, задается блоковый контекст поиска, в котором специальные конструкции (%% и $$) определяют поиск начальной и конечной строки блока:
%%<контекст поиска начальной строки блока>
<контекст поиска внутренних строк блока>
$$<контекст поиска конечной строки блока>
В качестве ограничителей начала и конца блока могут использоваться спецконструкции без контекстов:
%%%
(в этом случае начальная строка блока совпадает с началом файла)
$$
(в этом случае конечная и начальная строки блока совпадают)
$$$
(в этом случае конечная строка блока совпадает с концом файла)
Если для контекста поиска отсутствует контекст замены, то это означает, что найденная по контексту поиска строка войдет в сводный файл без изменения.
Примеры блоковых контекстов:
Контекст поиска: Контекст замены: Комментарий:
================================================================
%%<p> блок между обрамляющими
<table> граничными тегами <p> и </p>,
$$</p> содержащий таблицу с тегом
<table>
=================================================================
%%{фаза}|{фазов} блок карточек, заголовок
{@[} которых содержит производные
$${~@[} "" от слова фаза, а тело состоит
из конструкций, содержащих
квадратную скобку
=================================================================
В качестве начальной и конечной строк блока могут быть как отдельные фиксированные конструкции (например, %%<p> и $$</p>), так и произвольные строки, содержащие контекст поиска начальной строки блока (например, %%{фаза}|{фазов}). В последнем случае, конец искомого блока определяется отсутствием в строке заданного контекста начальной строки блока и контекста внутренней строки блока, но тогда он не должен быть включен в блок, что достигается заданием пустого контекста замены "".
Сборка строк и блоков редактирования в отдельный файл может успешно использоваться в сценариях , где существует возможность организовать итерационный процесс для программно изменяемых контекстов поиска.