Perl在关键词之间搜索

时间:2012-07-25 17:23:58

标签: perl search

好的,所以我想在我正在阅读的文件中有以下内容:

File:foobarbar.xml
abc
def
ghi
File:barbar.xml
jkl
mno

我希望输出为:

foobarbar
barbar

但出于某种原因,我只是得到了

foobarbar

我使用以下代码:

if (/File([\s\S]+?)xml/) {
    $key= $1; 
    print OUTPUT "$key\n"
}

注意:在上面的代码中,$key设置为$number one,而不是$lower case letter L。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:2)

正则表达式只匹配第一个文件,使用/ g修饰符获取所有匹配

while (/File:(.*)\.xml/g) {
    $key = $1;
    print OUTPUT "$key\n";
}

答案 1 :(得分:2)

当您逐行读取输入时,下面的代码按预期工作:

while(<>) {
  if (/File:([\s\S]+?)\.xml/){
    $key= $1; 
    print "$key\n";
  }
}