Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关键字之间的Perl搜索_Perl_Search - Fatal编程技术网

关键字之间的Perl搜索

关键字之间的Perl搜索,perl,search,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,而不是$小写字母L。任何

好吧,假设我在阅读的文件中有以下内容:

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,而不是$小写字母L。任何帮助都将不胜感激

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

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

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

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

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

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

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

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

顺便说一句,/[\s\s]/与//sbtw相同,/[\s\s]/与//st相同,假设您已将整个文件以$u.的形式写入。这不是通常的情况。好吧,他没有指定如何在中读取文件。如果他把整件事都塞进了美元,他可以用我的解决方案。否则他仍然可以使用perreal的解决方案。这假设您已将整个文件slurp到$中,这不是通常的情况。他没有指定如何在中读取文件。如果他把整件事都塞进了美元,他可以用我的解决方案。否则他仍然可以使用perreal的解决方案。