Ive получил файл, содержащий много адресов электронной почты, IP-адрес и даты. Мне нужно написать perl-скрипт для чтения в файле, использовать выражение регулярного выражения для обнаружения каждого из них и вывода их в другой файл.Запись адресов электронной почты в файл из файла с использованием регулярного выражения в perl
выражения рег я являются:
Email = /[A-Z0-9._%+-][email protected][A-Z0-9.-]+\[A-Z]{2,4}/g
Ip адрес = \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
Date = [0-9]{2}/[Jan Feb Mar Apr May Jun Jul Aug Sept Oct Nov Dec]/[0-9]{4}
Im интересно, если это правильно, и если кто-то может помочь мне поставить их в perl-скрипт.
Сценарий я написал для писем является:
#!/usr/bin/perl
open(IN, "<Assignment2.rtf") || die("file not found");
#chooses the file to read
open(OUT, ">emailaddresses.txt");
#prints file
$line = <IN>;
$none = "No email addresses found!";
for ($line)
{
if ($line =~ /[A-Z0-9._%+-][email protected][A-Z0-9.-]+\[A-Z]{2,4}/g)
{
print (OUT $line);
}
else
{
print (OUT $none);
}
}
close(IN);
close(OUT);
Он будет собирать, но не будут работать. Остальные выражения не будут компилировать
Благодарности
Электронная почта намного сложнее, чем это. http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html. IP-адрес будет иметь адрес 999.88.77.666, который является недопустимым. Дата, на которую дана дата 82/Dec/2013. Вы можете найти https://metacpan.org/pod/Regexp::Common полезным. Тем не менее, это не «писать коды» для меня на сайте - вы должны взломать его сами и задать конкретные проблемы о проблемах, которые вы найдете. – Oesor
[Прекратить проверку адресов электронной почты с помощью регулярных выражений] (http://davidcel.is/blog/2012/09/06/stop-validating-email-addresses-with-regex/). –