Страница 1 из 1

perl: регулярные выражения вырезать часть текста

Добавлено: 2011-11-25 8:41:39
eem-kz
Есть список в формате CSV файл (сохранен с Екселя). Формат такой:

Код: Выделить всё

Фамилия Имя Отчества; email@domain.net; passw
Не могу от туда вырезать localpart (до @)
Скрипт: часть кода

Код: Выделить всё

#!/usr/bin/perl
use strict;
use warnings;

while (<>) {
    my @l= split( /;/, $_ );
    print "$l[1]\t";
    my $ll= grep {/^[a-z0-9\._-]+/} $l[1];
    #    $ll = "$1";
        print "$ll\n";
    #    print "$l[0]\t $l[1] \n";
}
Целый день сидел, не как не могу разобраться...
Помогите!

Re: perl: регулярные выражения вырезать часть текста

Добавлено: 2011-11-25 13:18:21
hizel

Код: Выделить всё

hizel@wnight:~$ echo 'Фамилия Имя Отчества; email@domain.net; passw' > grep.txt
hizel@wnight:~$ cat grep.txt | perl grep.pl
 email@domain.net       email

Код: Выделить всё

hizel@wnight:~$ cat grep.pl
#!/usr/bin/perl

use strict;
use warnings;

while(<>) {
  my @l = split /;/, $_;
  print "$l[1]\t";

  if($l[1] =~ /([a-z0-9\._-]+)@([a-z0-9\._-]+)/) {
      my $local_part = $1;
      my $domain_part = $2;
      print "$local_part\n";
  } else {
      print "email not found\n";
  }
}

Re: perl: регулярные выражения вырезать часть текста

Добавлено: 2011-11-25 19:31:10
eem-kz
Спасибо! Очень помогли.