什么是PHP的preg_quote函数的perl等价物?

时间:2013-07-17 22:03:27

标签: regex perl escaping

我想在perl正则表达式模式中匹配一个字符串,但其中的字符可能需要转义。在PHP中,执行此操作的函数是preg_quote。 perl中的等价物是什么?

2 个答案:

答案 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功能。