【问题标题】:How to use regular expression to find the key from filename and get value by key from hash?如何使用正则表达式从文件名中查找键并从哈希中按键获取值?
【发布时间】:2021-09-08 11:39:28
【问题描述】:

我有一个带有少量键值的哈希,我有 2 种不同类型的文件名表达式,键在文件名内部。我需要从文件名中获取密钥,然后使用密钥从哈希中获取值。
例如

my $file1 = "MYCOM_SYS_ACCOUNT_20211212000001_00001.txt";<BR>
my $file2 = "MYCOM_SYS_20211211_BILLPROFILE_20211212000001_00032.txt";

从上面的文件名中,键是 ACCOUNT 和 BILLPROFILE。那么如何从单个表达式中提取它呢?然后我可以从我的哈希中搜索它

my %hashmap = ( 'ACCOUNT'=>'account', 'BILLPROFILE'=>'billprofile', 'PAYMENTTERM'=>'paymentterm',....about 1000 key-values);

有人明白我的问题是什么吗?

【问题讨论】:

    标签: perl hash


    【解决方案1】:
    my $alt = join "|", map quotemeta, keys %hashmap;
    my $re = qr/_($alt)_/;
    
    if ( my ($key) = $file =~ $re ) {
       my $val = $hashmap{$key};
       ...
    }
    

    【讨论】:

      猜你喜欢
      • 2013-12-22
      • 1970-01-01
      • 2012-11-21
      • 1970-01-01
      • 2019-11-10
      • 1970-01-01
      • 2017-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多