Программирование > Регулярные выражения
Регулярные выражения Непонимание
genich:
Здравствуйте! Осваиваю проверку е-мэйла в связи с чем: воспользовался поиском и нашел проверка email 5 топиков и соответствующую статью на этом сайте, но подставив чужое выражение в свою программу у меня мозгов не прибавилось в связи с чем хочу спросить:
---
Это выражение из статьи:
---
$email =~ /^[a-zA-Z_\\.-][a-zA-Z0-9_\\.-\\d]*\\@[a-zA-Z\\.-\\d]+\\.[a-zA-Z]{2,4}$/
ну не понимаю я... Пожалуйста, прокомментируйте:
[a-zA-Z_\\.-][a-zA-Z0-9_\\.-\\d]*
Почему 2 класса и почему * в конце... почему не плюс?
[a-zA-Z\\.-\\d]+
Почему + вконце а не *
---
Выражение из топика:
---
$email =~m/^([\\w,\\-,\\.]+\\@[\\w,\\-,\\.]+\\.\\w{2,4})/
\\w, - это что за конструкция такая? (вот сейчас 2 книге на коленях, ну не вижу я там такого... я про запятую.)
[\\w,\\-,\\.]+ - чему соответствует? вроде w\\ - [a-zA-Z0-9_] а что за запятая...
кстати выражение из топика отвечает qwe@qwe.qwe.http://fig.vam
---
Мое выражение (больше всего волнует):
---
if ($email =~ /[a-zA-Z0-9_]+\\@[a-zA-Z]+\\.[a-zA-Z]+/) { print "OK"; }
else { print "Bad mail";}
[a-zA-Z0-9_]+ - дожно соответствовать буквам цифрам и подчеркиванию, дак нет: q;;;we@qwe.qwe - соответствует...
буду очень благодарен за помощь, если кто-нибудь меня прозрит.
Макс:
--- Цитировать ---Мое выражение (больше всего волнует):
---
if ($email =~ /[a-zA-Z0-9_]+\\@[a-zA-Z]+\\.[a-zA-Z]+/) { print "OK"; }
else { print "Bad mail";}
--- Конец цитаты ---
а если /^[a-zA-Z0-9_]+\\@[a-zA-Z]+\\.[a-zA-Z]+$/
--- Цитировать ---[a-zA-Z_\\.-][a-zA-Z0-9_\\.-\\d]*
Почему 2 класса и почему * в конце... почему не плюс?
--- Конец цитаты ---
неуверен, но возможно цифра не может быть первым символом в e-mail
--- Цитировать ---[a-zA-Z\\.-\\d]+
Почему + вконце а не *
--- Конец цитаты ---
потому что между собакой и точкой должен быть хотя бы один символ (+ - означает один и более символов)
glebushka:
--- Цитировать ---Макс:
неуверен, но возможно цифра не может быть первым символом в e-mail
--- Конец цитаты ---
может
Alone:
а гипотетически может быть такое что в статье ошибка ?
например выражение:
[a-zA-Z0-9_\\.-\\d]
\\d означает цифры, но они уже описанны 0-9
далее
a-zA-Z0-9_ можно описать как \\w
[a-zA-Z_\\.-][a-zA-Z0-9_\\.-\\d]*
пропустить мыла типа _@mail.ru .@mail.ru -@mail.ru
а такие могут быть ?
genich:
Скажите пожалуйста почему так сильно влияет привязка ^
вот пишу /^[\\w]+\\@[a-zA-Z]+\\.[a-zA-Z+]$/
/[\\w]+ самое интересное допускает qwe::::;214
/^[\\w]+ отвечает только sfqws345
соответственно тоже самое $ в конце.
Если проясните, то закончатся мои страдания...
Навигация
Перейти к полной версии