perl正则表达式括号匹配

时间:2012-06-20 11:03:19

标签: regex perl replace

我有一个变量$next,其中包含可能包含括号的字符串,例如trna(tgc)我想创建此匹配语句if ($data[$i][2]=~/$next/){ ..}并且它总是返回false,即使它实际上是真的。我试过这个if ($data[$i][2]=~/trnA\(tgc\)/){ ..}并且它有效。 我的问题是:如何将每个括号前面的'\'插入变量$next

2 个答案:

答案 0 :(得分:4)

您需要引用元字符。

试试这个。

print "match" if( $var1 =~ /\Q$var2\E/ );

答案 1 :(得分:3)

我想你想要quotemeta

$next = "trna(tgc)";
$search = quotemeta($next);
if ($data[$i][2]=~/$search/){ 
    //..
}