Автор Тема: Регулярные выражения Непонимание  (Прочитано 4104 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн genich

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 3
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Регулярные выражения Непонимание
« : 25 Сентября 2003, 21:17:22 »
Здравствуйте! Осваиваю проверку е-мэйла в связи с чем: воспользовался поиском и нашел проверка 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 - соответствует...


буду очень благодарен за помощь, если кто-нибудь меня прозрит.

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Регулярные выражения Непонимание
« Ответ #1 : 25 Сентября 2003, 22:18:03 »
Цитировать
Мое выражение (больше всего волнует):
---
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]+
Почему + вконце а не *
потому что между собакой и точкой должен быть хотя бы один символ (+ - означает один и более символов)
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
Регулярные выражения Непонимание
« Ответ #2 : 26 Сентября 2003, 07:58:58 »
Цитировать
Макс:
неуверен, но возможно цифра не может быть первым символом в e-mail

может
Ну к чему все это, лучше бы водки выпили...

Оффлайн Alone

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 182
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Регулярные выражения Непонимание
« Ответ #3 : 26 Сентября 2003, 10:22:45 »
а гипотетически может быть такое что в статье ошибка ?
например выражение:
[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
а такие могут быть ?
« Последнее редактирование: 26 Сентября 2003, 10:34:59 от Alone »

Оффлайн genich

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 3
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Регулярные выражения Непонимание
« Ответ #4 : 26 Сентября 2003, 10:30:31 »
Скажите пожалуйста почему так сильно влияет привязка ^

вот пишу /^[\\w]+\\@[a-zA-Z]+\\.[a-zA-Z+]$/

/[\\w]+ самое интересное допускает qwe::::;214
/^[\\w]+ отвечает только sfqws345

соответственно тоже самое $ в конце.

Если проясните, то закончатся мои страдания...

Оффлайн genich

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 3
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Регулярные выражения Непонимание
« Ответ #5 : 26 Сентября 2003, 10:43:06 »
Все, не тратьти силы, я понял. Всем спасибо...

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28