这一定是显而易见的,但我只是没有看到它。
我有一个包含数千条记录的文档,如下所示:
Row:1 DATA:
[0]37755442
[1]DDG00000010
[2]FALLS
[3]IMAGE
[4]Defect
[5]3
[6]CLOSED
我已经设法将每条记录分开,现在我正在尝试解析每个字段。
我试图匹配编号的标头,以便我可以提取出它们之后的数据,但问题是我的匹配仅在成功时返回“1”,如果不成功则不返回任何内容。我尝试申请的任何比赛都会发生这种情况。
例如,应用于每个记录中的一个简单单词:
my($foo) = $record=~ /Defect/;
print STDOUT $foo;
如果每个记录包含“Defect”,则打印出“1”;如果包含其他内容,则不打印任何内容。
或者:
$record =~ /Defect/;
print STDOUT $1;
绝对不打印任何内容。
$record =~ s/Defect/Blefect/
另一方面,将用“Blefect”替换“Defect”则完全没问题。
我真的很困惑为什么我的比赛回报如此糟糕。
任何帮助将非常感激。
您需要使用捕获括号来实际捕获:
if ($record =~ /(Defect)/ ) {
print "$1\n";
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)