Forum Webscript.Ru
Программирование => Perl => Тема начата: от 29 Июля 2001, 19:54:35
-
Подскажите регулярное выражение для выборки mail адресов из html-документа.
-
Спамить собрался?
/(\\S+\\@\\S+\\.\\S+)/
-
А еще я намекаю, что при выдирании мыла из HTML ты неминуемо захватишь что-нибудь типа "<". Может, \\w вместо \\S ?
-
Если уж на то пошло, тогда:
/S+@S+/
И куда же уйдет письмо, посланное по этому адресу?
Hint: "mailto:glader_hs@mail.ru"
А ты пошли письмо и увидишь! А в чем проблема я вообще понять не могу... Ты проверь строку, а потом спрашивай! Если ты намекаешь, что она припишет к мылу mailto:, то, где ты видил, чтобы в тексте мыло довалось вместе с mailto:? Да и кроме того, отрезать этот mailto: совсем труда не составит!
Кроме того, он еще отправит и такое вот мыло: mqlo!!!mqlo@mqlo.ru
-
Hint: 123@mail.lacerta.ru
Тогда уж /\\S+@(\\S+\\.)+\\S+/
-
Если уж на то пошло, тогда:
/S+@S+/
И куда же уйдет письмо, посланное по этому адресу?
Hint: "mailto:glader_hs@mail.ru"
-
Hint: 123@mail.lacerta.ru
Тогда уж /S+@(S+.)+S+/
Если уж на то пошло, тогда:
/\\S+@\\S+/
-
А еще я намекаю, что при выдирании мыла из HTML ты неминуемо захватишь что-нибудь типа "<". Может, w вместо S ?
w использовать нельзя, по скольку в мыле могут быть такие вот знаки _ или еще чего-нибудь там... Надо делать проверку на : в начале и " или > в конце.
Итого получаем:
/:(\\S+@\\S+)[\\"\\>]/
[Изменено 15.8.2001 автор: Haze]
-
Можно попробовать вот так
$_ ~= s/.*?=?\\"?(mailto:)?([a-z0-9]+([-_\\.]?[a-z0-9])+@[a-z0-9]+([-_\\.]?[a-z0-9])+\\.[a-z]{2,4})\\"?>?.*?\\b<\\/a>.*/\\2/gi;
-
а так:
/[\\w\\d_-]+@[\\w\\d_-]([\\w\\d_\\.-]*?).([\\w\\d]{2,4})/
Какие еще прочие символы могут быть кроме \'_\' и \'-\'?
домены *.museum пока не учитываем :)
-
to Lodevar может пора ЧаВо заводить? Я насчитал этих тредов 5 штук, так или иначе с выдиранием адресов связанных...
И шоб не оффтоп- посмотри тред 14-11-01
http://forums.webscript.ru/showthread.php?s=&threadid=2335
-
Green Kakadu
а есть .museum? :)
что-то не слышал про такие.
-
а есть .museum?
что-то не слышал про такие.
http://www.icann.org/tlds/ - не я придумал
-
Казахский выриант :D
$w=\'\';
print $1 if $w=~/(\\w+-?\\w+\\@\\w+(\\.\\w+)+)/;
ююю
-
Казахский вариат :D
Блин скобки забыл поставит
вот так праеленее
print $1 if $w=~/(\\w+(-?\\w+)+\\@\\w+(\\.\\w+)+)/;
ююю