0

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

4

2 回答 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 回答