Forum Webscript.Ru

Программирование => Perl => Тема начата: от 29 Июля 2001, 19:54:35

Название: Регулярное выражение...
Отправлено: от 29 Июля 2001, 19:54:35
Подскажите регулярное выражение для выборки mail адресов из html-документа.
Название: Регулярное выражение...
Отправлено: Haze от 29 Июля 2001, 21:27:27
Спамить собрался?

/(\\S+\\@\\S+\\.\\S+)/
Название: Регулярное выражение...
Отправлено: Glader от 15 Августа 2001, 07:34:51
А еще я намекаю, что при выдирании мыла из HTML ты неминуемо захватишь что-нибудь типа "<". Может, \\w вместо \\S ?
Название: Регулярное выражение...
Отправлено: Haze от 14 Августа 2001, 22:13:01
Цитировать
Цитировать
Если уж на то пошло, тогда:
/S+@S+/

И куда же уйдет письмо, посланное по этому адресу?

Hint: "mailto:glader_hs@mail.ru"
А ты пошли письмо и увидишь! А в чем проблема я вообще понять не могу... Ты проверь строку, а потом спрашивай! Если ты намекаешь, что она припишет к мылу mailto:, то, где ты видил, чтобы в тексте мыло довалось вместе с mailto:? Да и кроме того, отрезать этот mailto: совсем труда не составит!

Кроме того, он еще отправит и такое вот мыло: mqlo!!!mqlo@mqlo.ru
Название: Регулярное выражение...
Отправлено: Glader от 14 Августа 2001, 08:19:44
Hint: 123@mail.lacerta.ru

Тогда уж /\\S+@(\\S+\\.)+\\S+/

Название: Регулярное выражение...
Отправлено: Glader от 14 Августа 2001, 11:14:59
Цитировать
Если уж на то пошло, тогда:
/S+@S+/

И куда же уйдет письмо, посланное по этому адресу?

Hint: "mailto:glader_hs@mail.ru"
Название: Регулярное выражение...
Отправлено: Haze от 14 Августа 2001, 10:56:59
Цитировать
Hint: 123@mail.lacerta.ru

Тогда уж /S+@(S+.)+S+/

 


Если уж на то пошло, тогда:
/\\S+@\\S+/
Название: Регулярное выражение...
Отправлено: Haze от 15 Августа 2001, 13:41:55
Цитировать
А еще я намекаю, что при выдирании мыла из HTML ты неминуемо захватишь что-нибудь типа "<". Может, w вместо S ?
w использовать нельзя, по скольку в мыле могут быть такие вот знаки _ или еще чего-нибудь там... Надо делать проверку на : в начале и " или > в конце.
Итого получаем:
/:(\\S+@\\S+)[\\"\\>]/

[Изменено 15.8.2001 автор: Haze]
Название: Регулярное выражение...
Отправлено: lyonchik от 23 Ноября 2001, 20:30:02
Можно попробовать вот так

$_ ~= s/.*?=?\\"?(mailto:)?([a-z0-9]+([-_\\.]?[a-z0-9])+@[a-z0-9]+([-_\\.]?[a-z0-9])+\\.[a-z]{2,4})\\"?>?.*?\\b<\\/a>.*/\\2/gi;
Название: Регулярное выражение...
Отправлено: Green Kakadu от 24 Ноября 2001, 13:41:42
а так:

/[\\w\\d_-]+@[\\w\\d_-]([\\w\\d_\\.-]*?).([\\w\\d]{2,4})/

Какие еще прочие символы могут быть кроме \'_\' и \'-\'?
домены *.museum пока не учитываем :)
Название: Регулярное выражение...
Отправлено: NeoNox от 24 Ноября 2001, 13:53:11
to Lodevar может пора ЧаВо заводить? Я насчитал этих тредов 5 штук, так или иначе с выдиранием адресов связанных...

И шоб не оффтоп- посмотри тред 14-11-01
http://forums.webscript.ru/showthread.php?s=&threadid=2335
Название: Регулярное выражение...
Отправлено: lyonchik от 24 Ноября 2001, 14:24:42
Green Kakadu
а есть .museum? :)
что-то не слышал про такие.
Название: Регулярное выражение...
Отправлено: Green Kakadu от 24 Ноября 2001, 15:20:59
Цитировать
а есть .museum?  
что-то не слышал про такие.

http://www.icann.org/tlds/ - не я придумал
Название: Регулярное выражение...
Отправлено: от 27 Ноября 2001, 11:38:08
Казахский выриант :D

$w=\'\';
print $1 if $w=~/(\\w+-?\\w+\\@\\w+(\\.\\w+)+)/;

ююю
Название: Регулярное выражение...
Отправлено: от 27 Ноября 2001, 16:04:29
Казахский вариат :D
Блин скобки забыл поставит
вот так праеленее

print $1 if $w=~/(\\w+(-?\\w+)+\\@\\w+(\\.\\w+)+)/;

ююю