我有一个要在 perl 正则表达式模式中匹配的字符串,但其中的字符可能需要转义。在 PHP 中,执行此操作的函数是 preg_quote。perl 中的等价物是什么?
问问题
288 次
2 回答
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
于 2013-07-17T22:10:54.543 回答
1
您可能需要quotemeta函数。
于 2013-07-17T22:08:41.520 回答