Страницы

Поиск по вопросам

среда, 13 февраля 2019 г.

Как в регулярном выражении исключить слово?

Я знаю про x(?!y) - находит x, только если за x не следует y. Но мне нужно исключать слово вне зависимости от того где оно стоит.
Найти букву А но исключить такие слова: арбуз, абандон и т.д.


Ответ

Относительно
Найти букву А но исключить такие слова: арбуз, абандон и т.д.
В Notepad++ используйте захватывающую подмаску с чередованиями и условный шаблон замены:
(\b(?:арбуз|абандон)\w*)|а
Заменить на
(?1$1:я)
Т.е. с помощью (\b(?:арбуз|абандон)\w*)|а мы найдем и сохраним все слова исключения (с окончаниями или без с помощью \w*) в группе №1, и при совпадении эти слова будут восстановлены в тексте с помощью ?1$1 (если первая подмаска найдена, восстанавливаем), а буква а будет изменена/удалена во всех остальных случаях (:я).
Относительно использования параметра Match case решайте сами.

Комментариев нет:

Отправить комментарий