在文件中的特定字符串的每个实例之后获取接下来的7个字符

时间:2013-04-11 00:29:14

标签: perl

我正在寻找一种方法来获取文件中单词"ISBN="的每个实例后面的7个字符。文件中每行有一个ISBN=

就像......

my @data = ();
my $word = "ISBN=";

foreach my $line (@file) {
    if (index($line, $word) ge 0) {
        my $d = next seven characters;
        push (@data, $d);
    }
}

我不知道......

3 个答案:

答案 0 :(得分:3)

听起来像正则表达式,捕获会更容易:

if ($line =~ /ISBN=(.{7})/) {
    push @data, $1;
}

答案 1 :(得分:3)

if ($line =~ /\Q$word\E(.{7})/) {
  push(@data, $1);
}

答案 2 :(得分:0)

要从字符串中的已知索引获取固定数量的字符,请使用substr函数:

my $d = substr $line, index($line, $word) + length($word), 7;