Страницы

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

понедельник, 6 января 2020 г.

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

#регулярные_выражения #notepad++


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

Найти букву А но исключить такие слова: арбуз, абандон и т.д.
    


Ответы

Ответ 1



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

Ответ 2



Проверить, что строка не содержит заданных слов: /^((?!арбуз|абандон).)*$/i Выбрать все буквы а, которые не входят в заданные слова: s.match(/арбуз|абандон|а|$/gi).filter(m => m.length===1)

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

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