关键字之间的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的解决方案。