#регулярные_выражения #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)
Комментариев нет:
Отправить комментарий