如果我有以下数据:
<br/>
help can be found...
所以我对实际数据有所了解:
<br/>\n\s\s\s\shelp can be found
我无法弄清楚原因,但Perl没有找到这些匹配。我正在使用以下代码:
my $filename = $ARGV[0];
open(INFILE, "<", $filename);
while (<INFILE>){
if (/(\<br\/\>.*\s{4}[A-Z])/msi){
print $1."\n";
}
}
测试Perl是否返回我的文本文档中与此正则表达式匹配的部分,但它没有找到它们。我看不出我的正则表达式有什么问题。任何帮助将非常感激。我试图让Perl在换行符中匹配但不起作用。
答案 0 :(得分:1)
<INFILE>
分别将每一行加载到$_
。因此,为了匹配不同的行,您需要将$/
设置为undef。然后,您还需要将while循环移动到正则表达式,并使用全局标志来设置多个匹配。
my $filename = $ARGV[0];
$/ =undef;
open(INFILE, "<", $filename);
my $file = <INFILE>;
while ($file =~ /(\<br\/\>.*\s{4}[A-Z])/msig){
print $1, "\n";
}