我想在perl正则表达式模式中匹配一个字符串,但其中的字符可能需要转义。在PHP中,执行此操作的函数是preg_quote。 perl中的等价物是什么?
答案 0 :(得分:3)
如果要按字面意思匹配变量的内容,请将其括在\Q...\E
引号中,或使用quotemeta
函数。这两项工作都是:
use feature 'say';
my $metachars = "1+2";
my $escaped_metachars = quotemeta $metachars;
local $_ = "1112, 1+2";
say "\\Q...\\E: ", /(\Q$metachars\E)/;
say "quotemeta: ", /($escaped_metachars)/;
say "no escaping: ", /($metachars)/;
输出:
\Q...\E: 1+2
quotemeta: 1+2
no escaping: 1112
答案 1 :(得分:1)
您可能需要quotemeta功能。