Регулярка для проверки e-mail

Обсуждение программы xStarter
Ответить
mxm199
Пилотируем с автопилотом
Сообщения: 30
Зарегистрирован: Пт мар 11, 2011 1:26 pm
Благодарил (а): 0
Поблагодарили: 0

Регулярка для проверки e-mail

Сообщение mxm199 » Ср авг 29, 2018 1:35 pm

Добрый день, товарищи
Подскажите, использую действие "Искать текст с параметрами" для проверки указанных e-mail, хочу использовать регулярное выражение, но не силён в них, и гугление не принесло работающих в xstarter результатов.
То есть хотелось рабочее регулярное выражение, проверять по нему соответствие адреса, а на выходе от действия просто получать False или True

Есть такое выражение, отлично работает, но xstarter не понимает его(

Заранее спасибо!

kain151
Ас
Сообщения: 305
Зарегистрирован: Ср июн 24, 2009 4:12 am
Благодарил (а): 8 раз
Поблагодарили: 4 раза

Re: Регулярка для проверки e-mail

Сообщение kain151 » Ср авг 29, 2018 11:15 pm

Приложите задачу.

mxm199
Пилотируем с автопилотом
Сообщения: 30
Зарегистрирован: Пт мар 11, 2011 1:26 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Регулярка для проверки e-mail

Сообщение mxm199 » Пт авг 31, 2018 9:57 am

обычная совершено задача, суть в том, что выгружаю списком кучу мыльников из своей базы, надо проверить правильно ли они занесены, к примеру -

Код: Выделить всё

mail-1_1@mail1.ru - хороший
mail2@mail2.rumail3@mail3.ru - ошибка, пропущен разделитель между мыльниками
my.mail.4.@mail.pochta.ru - хороший
@mail5.ru - ошибка
@mail6.  - ошибка
@mail7  - ошибка
mail8mail8.ru  - ошибка, нет собаки
и соответственно, после обработки формируется два файлика, один с хорошими другой с неправильными адресами.
У меня методом научного тыка получилось только нарисовать такое выражение -
.*(@).*?\..*(@) оно находит задвоенные, без разделителя адреса
тест1.xstk
(6.03 КБ) 236 скачиваний
- примерная задача, но суть понятна

kain151
Ас
Сообщения: 305
Зарегистрирован: Ср июн 24, 2009 4:12 am
Благодарил (а): 8 раз
Поблагодарили: 4 раза

Re: Регулярка для проверки e-mail

Сообщение kain151 » Пт авг 31, 2018 3:41 pm

Сделайте просто проверку по двум условиям, которые полностью закрывают вашу ситуацию (исходя из ваших примеров):
1. Получаем первый символ. Если = @ - ошибка
2. Ищем количество @. Если = 1 - все хорошо. Не равно - ошибка.

mxm199
Пилотируем с автопилотом
Сообщения: 30
Зарегистрирован: Пт мар 11, 2011 1:26 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Регулярка для проверки e-mail

Сообщение mxm199 » Пт авг 31, 2018 4:35 pm

Да, спасибо, я примерно так и выкрутился, правда через три IF и переменную
вот правильное регулярное выражение \w+\@\w.+\.\w+ для проверки валидности e-mail, если адрес соответствует маске, т.е. правильно указан, то +1 в переменную
вот выражение для поиска сдвоенных адресов @\w.+\@, если адрес не соответствует маске, т.е. не сдвоен с другим адресом, то +1 в переменную
Ну и соответственно в конце-концов, если переменная в итоге равна 2, то запись мыльника в файл хороших адресов, иначе запись в файл с ошибочными.

Хотелось, конечно не плодить IF'ы и переменные, а описать всю проверку одним выражением, но....)
Может и такое кому пригодится)

Ответить