Проверка мыла на валидность…

Нужно ли писать такие регулярные выражения (6Кб, между прочим) [ <<> ] или проще переписать на какие-нибудь конечные автоматы? И вообще, такой regexp без форматирования — это ужасно. Тот же Перл поддерживает расширенный синтаксис, где разрешено форматирование и комментирование.
23 июля 2003 13:40

cujo (инкогнито)
23 июля 2003, 17:10

Это пример из книги «Mastering Regular Expressions» (от O'Reilly, есть и русский перевод). Для оптимизации по скорости насколько я понял развернули достаточно сложный регексп до такого состояния.

bolk (bolknote.ru)
23 июля 2003, 17:10, ответ предназначен cujo

Думаю, его нужно оставить как пример. И не использовать.

zarr (инкогнито)
23 июля 2003, 17:55

я савсем тупею…
и что если я напишу в поле bolk@exler.ru
то это будет невалидный адрес?
соль где?
и эта… пока писал…
оказывается что учкудук = exreler

bolk (bolknote.ru)
23 июля 2003, 17:55, ответ предназначен zarr

почему не валидный?

zarr (инкогнито)
23 июля 2003, 18:04

тогда другой вопрос:
зачем нужна проверка валидности адреса? ;)

bolk (bolknote.ru)
23 июля 2003, 18:04, ответ предназначен zarr

чтобы меньше модератору потом потеть.

cujo (инкогнито)
23 июля 2003, 18:09

Так он там и оставлен как пример. В самом конце, как приложение. И пожелания хорошо провести время (при анализе ;), если я помню правильно. В книге есть разделы описывающие очень глубоко RE-движки. Автор этим примером показал саму возможность оптимизации по скорости в терминах самих регулярных выражений. И выражение это генерила машина и выполняет его тоже машина. А впечатляются люди…

Там фенька в том, что изза премудростей RFC даже очень красивое Perl-выражение с коментариями выглядит достаточно сурово. Думаю и его мало кто использует в повседневной жизни. 99% проверяют «собаку» и точки.

bolk (bolknote.ru)
23 июля 2003, 18:09, ответ предназначен cujo

Да, но в сабжевом топике используют именно этот пример. В реальной жизни. Вот в чём кошмар!

A!e% (инкогнито)
23 июля 2003, 18:41

Нет, конечно, такое писать в 99% случаев не нужно. Но если я правильно понял, о чем в этом регэкспе речь, то автомат будет в несколько раз короче.

Прочитать, что ли rfc… :) И написать автомат. Или ну его, а?

bolk (bolknote.ru)
23 июля 2003, 18:41, ответ предназначен A!e%

Да ну его :) Впрочем, если напишешь — многие скажут «спасибо». :)

A!e% (инкогнито)
23 июля 2003, 20:17

Почитал RFC. Возникла куча вопросов. Например, в РФЦ указано, что
<i>address = mailbox/group </i>
а этот регэксп учитывает только часть address, или и group тоже. Ну, и подобные вопросы.

Никто не расскажет, где бы эту книжицу поиметь или хотя бы главу, где этот РЕ строится. Самому разобрать можно, но зачем?

bolk (bolknote.ru)
23 июля 2003, 20:17, ответ предназначен A!e%

Как где? Заходи во всякие http://www.ozone.ru / http://www.bolero.ru

suzy (инкогнито)
24 июля 2003, 11:01

2A!e%

«Приложение Б. Программа поиска адресов электронной почты.» Стр. 340-342.

Кстати, есть прекрасный скрипт проверки валидности на php.spb.ru

suzy (инкогнито)
24 июля 2003, 11:02

2A!e%

Указано, естественно, в русском переводе.

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)