Например, вам необходимо составить выражение, которое разрешит любые нечисловые символы.
Это несложно:
А если необходимо исключить из поиска определенные слова? Тогда лучше применить 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 решайте сами.