Perl读取文件并在两个字符串之间获取字符串

时间:2017-04-17 18:09:34

标签: regex perl

我正在尝试读取文件并将所有内容收集在两个哈希键之间。我想访问$ beginString和$ endString变量之间的所有内容。我尝试了多个正则表达式,但还没有能够让它工作。

my $beginString = "SEARCH";
my $endString = "TEST";


my $fileContent;
open(my $fileHandler, $inputFile) or die "Could not open file '$inputFile' $!";
{
    local $/;
    $fileContent = <$fileHandler>;
}
close($fileHandler);



if($fileContent =~ /\b$beginString\b(.*?)\b$endString\b/){
    my $result = $1;
    print $result;
}

print Dumper($fileContent); 

1 个答案:

答案 0 :(得分:0)

the perl monks' solution的改编可能是..

my $beginString = "SEARCH";
my $endString = "TEST";

my $fileContent;
open(my $fileHandler, $inputFile) or die "Could not open file '$inputFile' $!";
while(<$fileHandler>) {
  if(/$beginString/../$endString/) {  $fileContent .= $_ unless(/$beginString/ or /$endString/) }
}
close($fileHandler);
print Dumper($fileContent);