搜索字符串是否与Perl中数组的任何正则表达式匹配

时间:2014-02-06 15:20:42

标签: regex arrays perl

我有一个包含一些PCRE匹配模式的数组(比如“prefix _。*”),我正在比较一个字符串和数组的所有模式。 目前,我正在使用此代码:

foreach (@matchingPatterns) {
    if ("$string" =~ "$_") {
        [do something]
    }
}

这段代码运行良好,但我确信在Perl中有一个更漂亮的方法(没有任何循环?)。

我错了吗? ;)

1 个答案:

答案 0 :(得分:1)

这里没有太大的改进余地,但我更倾向于写下以下内容之一:

for (@matchingPatterns) {
    next if $string !~ /$_/;
    # do something
}

for (grep { $string =~ /$_/ } @matchingPatterns) {
    # do something
}

......这两者至少可以为您节省几行代码。