当模式在变量中时,如何在 perl 中匹配复杂的未知模式?

Ansh007

有一个配置文件,其中包含用户提供的模式。基本上模式可以是任何东西,字母、数字、空格、不一定是封闭的大括号和特殊字符的组合。模式例如:<Error my (error** fail& 345% ?+[+?>

我对 perl 很陌生,正在努力处理这个问题。

我的一段代码:

for (<FH>) {
    for ( my $j = 0 ; $j < $num_pat ; $j = $j + 1 ) {
        print "This is the pattern : $pat_array[$j] \n";
        if ( $_ =~ m/'$pat_array[$j]'/ ) {
            print "$_ : match found for $pat_array[$j] \n";
            #print "KPI for the pattern is : $kpi_array[$match] : array style \n";
            $match_count[$j] = ( $match_count[$j] + 1 );
        }
    }
}

模式数组有多种模式。我正在尝试使用以下方法查找匹配项: if ($_ =~ m/'$pat_array[$j]'/)它适用于简单模式,但不适用于示例中的模式。

请帮助我进一步进行。

蒂尼塔

您需要引用特殊字符。perldoc -f quotemeta

您还可以使用这样的速记\Q$variable\E语法:

if ($string =~ m/\Q$pattern\E/) { ... }

现在任何特殊字符都将按字面匹配。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Perl中匹配单个模式并将其替换为多个模式

来自分类Dev

Perl替代模式匹配中的算术计算

来自分类Dev

PERL中以句号“。”结尾的模式匹配

来自分类Dev

在Perl中与数组进行模式匹配

来自分类Dev

PERL:匹配多种模式

来自分类Dev

从行尾匹配 perl 模式

来自分类Dev

Perl:regx 模式匹配

来自分类Dev

如何在Perl中的目录下匹配多个文件的正则表达式模式?

来自分类Dev

在Perl模式匹配中打印匹配的字符串

来自分类Dev

如何在FTP(Perl)中关闭交互模式

来自分类Dev

如何在FTP(Perl)中关闭交互模式

来自分类Dev

如何在SQL Server中匹配复杂的模式?

来自分类Dev

如何在perl中锁定成员变量?

来自分类Dev

如何在Perl中打印多个变量?

来自分类Dev

在Perl中的模式匹配后返回单词

来自分类Dev

Perl中的字符串匹配用于多种模式

来自分类Dev

冗余交易ID,同时匹配Perl中的各种模式

来自分类Dev

在Perl程序中轻松访问模式匹配的捕获数组

来自分类Dev

在Perl中的模式匹配方面需要帮助

来自分类Dev

在Perl中的模式匹配后返回单词

来自分类Dev

SQL Server 2008中的复杂模式匹配

来自分类Dev

如何使用Perl进行模式匹配

来自分类Dev

如何在MySQL中对变量进行模式匹配

来自分类Dev

Perl-仅在与另一个模式匹配的行中替换模式

来自分类Dev

如何跳过类似于Haskell模式匹配的Perl列表分配中的元素?

来自分类Dev

如何使用Perl删除模式匹配和文件中的其余行

来自分类Dev

如何使用perl从2个不同的文件中打印出匹配的唯一模式

来自分类Dev

如何在复杂模式中设置状态

来自分类Dev

如何在 Perl 中的变量中设置找到的文本

Related 相关文章

热门标签

归档