Скопировал текст:
Задача №2. Поиск слова и всех его форм. Например, для задания оформления полужирным. Решим эту задачу на примере какого-то конкретного слова, например, “пример”.
Решение:
в строке поиска задать: “\<(?i)приме(р|ры|ров|ре|ра)\>”
в строке замены ничего не задавать или ввести в неё “$0” (означает найденный текст);
в опциях замены указать оформление полужирным.
Объяснение.
Во-первых, нужно вычислить все формы этого слова. В нашем случае это будут: “пример”, “примеры”, “примеров”, “примера”, “примеру”, “примере” (кроме “например”, “примерный” и пр. – это уже другие слова).
На этот раз нам нужно задать альтернативные варианты не для символов, а для слов. Такая возможность в шаблонах предусмотрена и реализуется путём перечисления через символ “|” (вертикальная черта). То есть строка поиска должна содержать: “пример|примеры|примеров|примере|примера”
Однако такой поиск игнорирует слова с заглавной буквы! Чтобы решить эту проблему нужно в строку поиска ввести метасимвол “(?i)”, который заставит при поиске игнорировать регистр. И теперь строка поиска выглядит так: “(?i)пример|примеры|примеров|примере|примера”. Не беспокойтесь, при выполнении замены регистр будет сохранён.
Но, увы, ещё одна проблема – система находит эти слова внутри других слов («например», «примерный» и пр.), а нам это не нужно! Выход – надо искать слово целиком. Для этого следует обозначить границы слова в строке поиска – начало слова обозначается метасимволами “\<”, а конец – “\>”. И теперь строка поиска выглядит так:
“(?i)\<пример|примеры|примеров|примере|примера\>”, или так:
“\<(?i)пример|примеры|примеров|примере|примера\>”
Это уже готовое решение, но его можно записать значительно проще! Обратите внимание, что при перечислении форм меняется только часть слова. Чтобы отделить её от неизменной части используем возможность группировки символов, для чего альтернативные варианты укажем в круглых скобках. Таким образом, вместо “пример|примеры|примеров|примере|примера” можно написать: “приме(р|ры|ров|ре|ра)” или “пример|пример(ы|ов|е|а)”
И теперь строка поиска выглядит, например, так: “\<(?i)приме(р|ры|ров|ре|ра)\>”