- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:
\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(
?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[
\t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\0
31]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\
](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+
(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:
(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)
?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\
r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[
\t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)
?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t]
)*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*
)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)
*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+
|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r
\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:
\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t
]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031
]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](
?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?
:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?
:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?
:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?
[ \t]))*"(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|
\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>
@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"
(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t]
)*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?
:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[
\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-
\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(
?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;
И в том же духе еще 43 строки. Регулярное выражение для проверки емейл адреса. Все на полном серьезе и в соответствии со стандартом. Взято отсюда http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html
guest 30.10.2009 14:22 # 0
guest 30.10.2009 14:48 # 0
guest 30.10.2009 14:59 # 0
alabax 30.10.2009 16:08 # 0
guest 30.10.2009 15:13 # 0
sudden_def 30.10.2009 15:32 # 0
guest 30.10.2009 15:45 # 0
guest 30.10.2009 16:35 # 0
guest 30.10.2009 16:37 # 0
guest 30.10.2009 17:59 # 0
2)Не говнокод, а стандарт, ибо предназначался для надёжной проверки адреса компьютером, а не что-бы ты его понял. Так как сдесь все верно и исправлять его нет необходимости. ;)
alabax 02.11.2009 08:43 # +1
2) Представьте себе задачу учесть дополнения к стандарту, например, международные символы в адресе.
guest 31.10.2009 02:55 # +1
но ведь пиздец
guest 06.11.2009 06:54 # 0
Думаю, на любом языке правильнее будет написать немного проверочного кода, чем работать с ТАКИМ.
bildja 07.11.2009 23:59 # 0
varan 02.11.2009 00:05 # +3
nolka4 02.11.2009 07:15 # 0
guest 05.11.2009 11:09 # −2
alabax 05.11.2009 11:23 # 0
guest 05.11.2009 11:33 # 0
guest 05.11.2009 12:15 # −1
alabax 06.11.2009 09:29 # 0
guest 06.11.2009 17:46 # 0
varan 06.11.2009 19:39 # 0
А смысл этого в том, чтобы понимать, что за хня там написана, а не доверять хер знает кому, кто написал этот регексп
alabax 06.11.2009 23:48 # 0
Пара вопросов на засыпку:
Можно ли сделать регулярное выражение меньше чем на 82 строки, которое будет (с теми же предварительными условиями что и у автора) проверять e-mail?
Все вспоминают об if'ах когда речь заходит о проверке. Можно ли решить данную задачу без циклов? :)
guest 06.12.2009 11:39 # 0
alabax 07.12.2009 09:31 # 0
zantor 09.11.2009 12:17 # +1
guest 09.11.2009 12:54 # −1
Какая еще книга?
Если бы из блоков, то может и вопросов бы ни у кого не появилось
zantor 09.11.2009 14:08 # 0
guest 20.01.2010 09:26 # 0
Настоятельно рекомендовал Вам с ней ознакомиться, это просто библия по регулярным выражениям. Кстати не только для Perl'а, а также для PHP, Java, Python, Ruby, MySQL, VB.NET, C# (и других языков платформы .NET)
Данный код там приведён в качестве примера в конце книги
guest 20.01.2010 10:33 # 0
alabax 09.11.2009 15:16 # 0
zantor 09.11.2009 15:18 # 0
alabax 09.11.2009 15:19 # 0
zantor 09.11.2009 16:02 # 0
Oleg_quadro 25.11.2009 18:16 # 0
guest 10.12.2009 10:36 # +1
Если есть тандарт(РФЦ) то его надо соблюдать, хоть ты ебанись!
guest 10.12.2009 10:38 # 0
я смотрю, ты уже ебанутый
Oleg_quadro 25.11.2009 18:15 # 0
$part1 = qr/bla-bla-bla/;
$part2 = qr/bla-bla-bla/;
$regexp = /$part1.$part2/;
guest 18.01.2010 02:02 # 0
guest 20.01.2010 10:41 # 0
AHCKujlbHblu_netyx 25.08.2021 00:46 # 0
bkezArB 25.08.2021 01:52 # 0