我正在尝试从文本文件中解析出特定值,并将它们输出到不同的文件中.
我正在使用存储在散列中的正则表达式(与其描述性名称匹配)来搜索字符串(标量),然后将发现的值存储在数组中,然后将其写入文件.
除搜索/提取部分外,我已经完成了所有工作.(我刚刚在过去的几天里学过Perl,所以如果我犯了一些非常简单的错误,我也不会感到惊讶.)
$inputstring = 'Lorem ipsum dolor Date: 20110131 quis semper egestas.';
%myregexhash = ( Date => '/([12][09][0-9][0-9][0-1][0-2][0-9][0-9])/' );
@foundvaluesarray=();
while ( ($thefieldname, $theregex) = each (%myregexhash))
{
if ($inputstring =~ $theregex)
{
push(@foundvaluesarray, "$thefieldname: $&\n");
$inputstring = $';
}
}
print "@foundvaluesarray";
Run Code Online (Sandbox Code Playgroud)
数组填充字段名称("Date:"),但不填写我正在寻找的值("20110131").
知道我做错了什么吗?