小编sen*_*l23的帖子

使用存储在哈希中的正则表达式提取字符串

我正在尝试从文本文件中解析出特定值,并将它们输出到不同的文件中.

我正在使用存储在散列中的正则表达式(与其描述性名称匹配)来搜索字符串(标量),然后将发现的值存储在数组中,然后将其写入文件.

除搜索/提取部分外,我已经完成了所有工作.(我刚刚在过去的几天里学过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").

知道我做错了什么吗?

regex perl hash

2
推荐指数
1
解决办法
2509
查看次数

标签 统计

hash ×1

perl ×1

regex ×1