如果内容在文件中,那么这样读文件就可以把文件读到一个标量中:
local $/;
my $data =;
print $1 if $data =~ /Administrative Contact, Technical Contact:\n.+\s+(\S+\@\S+)\n/;
如果内容在数组中,那么:
for (my $i = 0; $i < @data; $i++) {
if ($i > 0 and $data[$i-1] =~ /Administrative Contact, Technical Contact:$/ and $data[$i] =~ /\s+(\S+\@\S+)$)/) {
print $1;
last;
}
}
在正则末尾加个m标记,可以用$匹配行尾
if (/Administrative Contact, Technical Contact:$(.*)\s+(.*)$/m)
只保证正则的正确,没学过perl,不能保证代码的正确
如果原来的代码是正确的,应该能成
open F,"F:/1.txt"; #1.txt是你画面上的文件
while(){
$line=;
if(/Administrative/){
$line=~/Openfind Informaiton Technology Inc.\s+(.*)/;
print $1;}}