Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Парсинг mail'ов (https://forum.antichat.xyz/showthread.php?t=126759)

ANONIM123 24.06.2009 19:01

Парсинг mail'ов
 
Есть список txt, а в нём куча мылов, в перемешку с текстом

Нужно выпарсить все майлы, и создать список майлов, чтобы не повторялись... Навеярняка уже есть готовые скрипты.. Выложите плиз :)

TheSoul 25.06.2009 00:12

В файл text.txt кидаешь всё что надо отпарсить
В конце получишь мыла в файле pars_emails.txt

#!/usr/bin/perl -w

open (FILE , "<text.txt");
chomp (@text = <FILE>);
close FILE;

undef %saw;

while (@text)
{
$pars = shift @text;
$pars =~ /\b(.*?)\@(.*?)\.(.{2,4})/g;
$email = "$1\@$2\.$3";
push @in,$email;
}

@in = grep(!$saw{$_}++, @in);
open (FILE2 , ">>pars_emails.txt");

while (@in)
{
$end = shift @in;
print FILE2 "$end\n";
}
close FILE2;

eLWAux 25.06.2009 00:22

PHP код:

$f = @implode('',@file('INPUT.TXT'));
if (
preg_match_all('/(\w+@\w+\.\w{2,3})/'),$f,$m) {
   
$m array_unique($m); 
   
var_dump($m);



demond 25.06.2009 11:34

TheSoul, твой вариант не подойдет хотя бы потому что в адресах с зоной домена из 4-х букв домен будет урезан до 3-х (например вместо mail.info будет mail.inf), что не есть гуд!
eLWAux, а у тебя если в адресе будет -(тире) или .(точка) , то они будут проигнорированы, т.е. \w проверяет только состоит ли текст только из букв, цифр и символов подчеркивания.
поэтому предлагаю в качестве регулярки для поиска следующее:
Код:

(.*) ([\w+\-\.]+\@[\w\-\.]+\.\w{2,4}) (.*)
Хотя, конечно, надо видеть текст!

ReduKToR 25.06.2009 12:32

Допустим меня интересует для БД в формате .sql

demond 25.06.2009 12:52

Цитата:

Сообщение от ReduKToR
Допустим меня интересует для БД в формате .sql

пример текста дай, чтобы не изобретать! И я тебе приведу готовое регулярное выражение!

b3 25.06.2009 14:07

Цитата:

Допустим меня интересует для БД в формате .sql
помоему ТС хочет вытянуть с дампа мыльники, тогда уже легче сделать запрос в БД:
SELECT email_column FROM table_name


Время: 18:20