|
Модераторы: ginnie |
|
Agares |
|
||||
Опытный Профиль Группа: Участник Сообщений: 376 Регистрация: 20.5.2007 Где: Минск Репутация: нет Всего: нет |
Помогите составить регулярное выражение для мыла.
делал так:
результат вот такой получается:
Какое нужно исспользовать рег. выражение? |
||||
|
|||||
tolkien |
|
|||
Опытный Профиль Группа: Участник Сообщений: 277 Регистрация: 5.4.2008 Репутация: нет Всего: 4 |
^([\w\-.]+)\@(\w+)\.(\w+)
Это сообщение отредактировал(а) tolkien - 15.7.2008, 18:36 |
|||
|
||||
Agares |
|
|||
Опытный Профиль Группа: Участник Сообщений: 376 Регистрация: 20.5.2007 Где: Минск Репутация: нет Всего: нет |
Прише к такому решению: /^[A-Za-z\.]+\@(\w)+\.[A-Za-z\.]+$/
но если ввести мыло [email protected] то говорит что корректный. Как сделать, что бы только одну точку перед собакой ставить можно? |
|||
|
||||
KSURi |
|
|||
Опытный Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: нет Всего: 27 |
Не идеально, но мне подходит)
Добавлено через 3 минуты и 5 секунд Agares, а почему одну точку? А если домен второго уровня? -------------------- Died at Life.pl line 21 |
|||
|
||||
Agares |
|
|||
Опытный Профиль Группа: Участник Сообщений: 376 Регистрация: 20.5.2007 Где: Минск Репутация: нет Всего: нет |
О! То что надо спасибо большое!
|
|||
|
||||
gcc |
|
|||
Агент алкомафии Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: нет Всего: 17 |
|
|||
|
||||
arto |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: нет Всего: 40 |
это просто праздник какой-то!
ни одного правильного ответа! |
|||
|
||||
KSURi |
|
|||
Опытный Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: нет Всего: 27 |
gcc, странная какая-то регулярка у вас, я бы не стал такую использовать)
Более того, у вас все слеши зачем-то эскейпятся, это влияет на работоспособность всего регулярного выражения. Также символ @ не надо эскейпить, т.к. у него нет никакой мета-ф-ии. -------------------- Died at Life.pl line 21 |
|||
|
||||
Agares |
|
|||
Опытный Профиль Группа: Участник Сообщений: 376 Регистрация: 20.5.2007 Где: Минск Репутация: нет Всего: нет |
Блин, все ок, но только Введенный Вами адрес ([email protected]) корректный!
нужно это исправить. поможете? |
|||
|
||||
KSURi |
|
|||
Опытный Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: нет Всего: 27 |
-------------------- Died at Life.pl line 21 |
|||
|
||||
Agares |
|
|||
Опытный Профиль Группа: Участник Сообщений: 376 Регистрация: 20.5.2007 Где: Минск Репутация: нет Всего: нет |
Дело в том, что задача - написать регулярное выражение
|
|||
|
||||
tolkien |
|
|||
Опытный Профиль Группа: Участник Сообщений: 277 Регистрация: 5.4.2008 Репутация: нет Всего: 4 |
просто узнайте спецификацию постройки e-mail и сделайте так как там сказано.
|
|||
|
||||
Itsys |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: нет Всего: 34 |
Вот самая точная:
|
|||
|
||||
gcc |
|
|||
Агент алкомафии Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: нет Всего: 17 |
еще можно попробовать подключиться к данному email, если он есть - значит адресс правильный!
Это сообщение отредактировал(а) gcc - 15.7.2008, 20:32 |
|||
|
||||
Agares |
|
|||
Опытный Профиль Группа: Участник Сообщений: 376 Регистрация: 20.5.2007 Где: Минск Репутация: нет Всего: нет |
Честно говоря, я сначала испугался... Вот эта подходит больше всего:
но нужно ее подкарректировать, что бы [email protected] воспринималось как не правильное мыло. Мне подсказали, что нужно использовать группировку. но как я не понял. Эксперементы прошли не удачно |
|||
|
||||
arto |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: нет Всего: 40 |
бедные музейщики, им не послать почту.
[email protected] тоже неправильный адрес? jfyi: [email protected] -- вполне себе валидный синтаксис. |
|||
|
||||
AlexPet |
|
||||||
Шустрый Профиль Группа: Участник Сообщений: 93 Регистрация: 5.12.2007 Где: Брянск Репутация: нет Всего: 1 |
Вообще-то массивы интерполируются в регулярном выражении
|
||||||
|
|||||||
Agares |
|
|||
Опытный Профиль Группа: Участник Сообщений: 376 Регистрация: 20.5.2007 Где: Минск Репутация: нет Всего: нет |
Хм.. не знал. спасибо.
А кто может помочь решить проблему? |
|||
|
||||
tolkien |
|
|||
Опытный Профиль Группа: Участник Сообщений: 277 Регистрация: 5.4.2008 Репутация: нет Всего: 4 |
Большая и толстая книга вам в помощь. Раздел про рег выражения. За основу возмите одно из рег выражениях написанных выше и улучшайте его.
|
|||
|
||||
Agares |
|
|||
Опытный Профиль Группа: Участник Сообщений: 376 Регистрация: 20.5.2007 Где: Минск Репутация: нет Всего: нет |
Я понимаю, но может у кого есть готовое решение? Просто мне максимально быстро нужно это сделать..
|
|||
|
||||
Agares |
|
|||
Опытный Профиль Группа: Участник Сообщений: 376 Регистрация: 20.5.2007 Где: Минск Репутация: нет Всего: нет |
Сделал вот так:
Это сообщение отредактировал(а) Agares - 16.7.2008, 10:58 |
|||
|
||||
IceSunrise |
|
||||
Шустрый Профиль Группа: Участник Сообщений: 61 Регистрация: 7.4.2008 Где: Санкт-Петербург Репутация: нет Всего: 3 |
AlexPet,
Если после @ идет корректное имя переменной, то да, в противном случае можно не экранировать.
|
||||
|
|||||
AlexPet |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 93 Регистрация: 5.12.2007 Где: Брянск Репутация: нет Всего: 1 |
IceSunrise, да, именно так.
Но ИМХО лучше не испытывать судьбу и написать лишний обратный слеш (мало ли, через пару недель об этом забудешь ) Да и warning лишний не нужен (по крайней мере в ActivePerl) Это сообщение отредактировал(а) AlexPet - 16.7.2008, 11:20 |
|||
|
||||
arto |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: нет Всего: 40 |
в \w входит '_', в доменной части запрещено (фокусы с * опустим).
Добавлено через 14 минут и 42 секунды btw, для первоначальной проверки можно использовать: # perl -le 'my $re = shift; print "RE: /$re/"; print $a,"\t",($a =~ m#$re# ? "YES":"NO") eq $b ? "PASSED":"FAIL" while (($a,$b) = splice@ARGV,0,2);' \ '^([\w\d\-]+\.{0,1})+@[\w\d\-]+(\.{1}[\w\d\-]+)+$' \ [email protected] YES a+test@com YES [email protected] YES a@b_c.com NO [email protected] YES aa%[email protected] YES "aa.bb.cc.dd@[192.168.1.1]" YES [email protected] NO %[email protected] NO [email protected] NO RE: /^([\w\d\-]+\.{0,1})+@[\w\d\-]+(\.{1}[\w\d\-]+)+$/ [email protected] PASSED a+test@com FAIL [email protected] PASSED a@b_c.com FAIL [email protected] PASSED aa%[email protected] FAIL aa.bb.cc.dd@[192.168.1.1] FAIL [email protected] PASSED %[email protected] PASSED [email protected] PASSED все должно быть PASSED. дополнения приветствуются :) |
|||
|
||||
gcc |
|
|||
Агент алкомафии Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: нет Всего: 17 |
Data::Validate::Email
http://search.cpan.org/search?m=all&q=...date%3A&s=1 этоти модули наверное подойдут для этого дела? там где важное чтобы не прошел мусор? чтобы не было rm -rf / Это сообщение отредактировал(а) gcc - 1.10.2008, 00:34 |
|||
|
||||
VutDen |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 22.1.2014 Репутация: нет Всего: нет |
Вот держи, сам пользуюсь, поределение 99%
а то что то простенькие у тебя выражения:) |
|||
|
||||
arto |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: нет Всего: 40 |
ошибка сходу -- пропустит домены вида a-------b.c---------d
|
|||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Регулярные выражения | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |