【发布时间】:2011-09-27 20:17:50
【问题描述】:
我正在尝试从文本文件中解析出特定值,并将其输出到不同的文件中。
我正在使用存储在哈希中的正则表达式(与其描述性名称匹配)来搜索字符串(标量),然后将发现的值存储在数组中,然后将其写入文件。
除了搜索/提取部分之外,我已经完成了所有工作。 (我在过去几天才刚刚学习 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";
该数组填充了字段名称(“日期:”),但不是我要查找的值(“20110131”)。
知道我做错了什么吗?
【问题讨论】: