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

Например, вам необходимо составить выражение, которое разрешит любые нечисловые символы.
Это несложно:

А если необходимо исключить из поиска определенные слова? Тогда лучше применить Negative Lookaround — позиционную проверку. Подробнее можно узнать здесь.

Если наши слова red и black, то регулярное выражение может выглядеть так:

Делаю валидацию поля input для почты, нужно проверить нет ли во введенном адресе слов gmail, yahoo и т.д. Замучался уже с этими регулярками, ни в какую не хочет. Пропускаю только те адреса, в которых нет слов. Как правильно регулярное выражение написать под это?
Часть кода, в котором вставлено:

Суть проверки сводится к тому, чтобы отдать в переменную true если в поле отсутствует gmail, yahoo и еще по списку слова после @, и отдать false если они есть.

И если зyает кто нормальный мануал по регуляркам — поделитесь, те которые гуглятся содержат кучу инфы или не применимой в каких-то простых случаях или без примеров. А нужны банальности вот типа исключить слово, как объединять условия, как проверить только первый символ (типа + перед номером телефона) и т.п.

  • Вопрос задан 22 окт.
  • 141 просмотр

Имхо, желательно делать проверку полнее, т.к. ну чисто теоретически такие слова могут быть в имени пользователя например, так же не делать инверсию результата, т.к. метод все же называется isInvalid

PS: если проверка НА валидность, то поставить !

А как правильнее через переменную реализовать?

не очень понятна эта фраза.
через переменную?
ну просто присвоить ей значение выполнения регекспа.

PS: просто я так понял у вас это реализовано как метод объекта?
просто по названию
если
isInvalid то должно быть:

Читайте также  Самый лучший ламповый усилитель

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

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

2 ответа 2

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

В Notepad++ используйте захватывающую подмаску с чередованиями и условный шаблон замены:

Т.е. с помощью ((?:арбуз|абандон)w*)|а мы найдем и сохраним все слова исключения (с окончаниями или без с помощью w* ) в группе №1, и при совпадении эти слова будут восстановлены в тексте с помощью ?1$1 (если первая подмаска найдена, восстанавливаем), а буква а будет изменена/удалена во всех остальных случаях ( :я ).

Относительно использования параметра Match case решайте сами.

Ссылка на основную публикацию
Adblock
detector