如何在Perl的///运算符中使用包含正则表达式特殊字符的模式?

ayo*_*aad 0 regex perl

我正在使用的模式s///包含正则表达式特殊字符.我如何引用它们以便正则表达式引擎将它们视为文字字符.

我可以quotemeta在这样的模式中调用子例程()吗?

$string =~ s/quotemeta($regex)/$new/g;
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

Sin*_*nür 5

你的意思是你想在运算符中引用模式s///.

你可以使用\Q\E转义来做到这一点:

$s =~ /\Q[a-z]\E//;
Run Code Online (Sandbox Code Playgroud)

会查找文字字符串[a-z]而不是单个字符a ... z.

您可以在计算机上安装的perldoc perlreref中找到此信息和其他有用信息perl.

Perl提供了出色的文档.人们应该定期浏览/阅读所有内容.