关于正则表达式的问题
对去下面的文档:
/*<Begin_comment>
Author: ABC
Version: 1.0
blabla
<End_comment>*/
.............
我想提取出<Begin_comment> 和<End_comment>之间的文档,并打印到一个文档上。
if (/<Begin_comment>(.*)<End_comment>/si){
print $fileout "$1";
}
但是程序运行时,报错uninitialized value in concatentation(.),不知道是为什么,希望大家能帮忙解答一下
/*<Begin_comment>
Author: ABC
Version: 1.0
blabla
<End_comment>*/
.............
我想提取出<Begin_comment> 和<End_comment>之间的文档,并打印到一个文档上。
if (/<Begin_comment>(.*)<End_comment>/si){
print $fileout "$1";
}
但是程序运行时,报错uninitialized value in concatentation(.),不知道是为什么,希望大家能帮忙解答一下
作者: potato1234 发布时间: 2011-06-12
貌似你这逻辑不行
作者: getline 发布时间: 2011-06-12
Perl code
while(<DATA>) { if (/<Begin_comment>/ .. /<End_comment>/) { push @arr,$_; } } shift @arr; pop @arr; for(@arr) { print $fileout; } __DATA__ /*<Begin_comment> Author: ABC Version: 1.0 blabla <End_comment>*/
作者: getline 发布时间: 2011-06-12
好的。我试一下。好像是我写的程序是关于单行匹配的,而我要做的是多行匹配
作者: potato1234 发布时间: 2011-06-12