0

我正在寻找一种方法来获取"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);
    }
}

我没有线索...

4

3 回答 3

3

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

if ($line =~ /ISBN=(.{7})/) {
    push @data, $1;
}
于 2013-04-11T00:31:36.560 回答
3
if ($line =~ /\Q$word\E(.{7})/) {
  push(@data, $1);
}
于 2013-04-11T00:32:16.313 回答
0

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

my $d = substr $line, index($line, $word) + length($word), 7;
于 2013-04-11T00:32:49.613 回答