Tyz*_*zak 8 regex perl escaping special-characters
我有一个字符串 $regexp_as_string
现在我想将它"转换"为正则表达式/将其用作正则表达式
if ($text_to_search =~ $regexp_as_string)
{
...
}
Run Code Online (Sandbox Code Playgroud)
现在有像"."这样的字符.我想自动逃脱它们 - \Q和\ E应该这样做
if ($text_to_search =~ /\Q$regexp_as_string\E/)
{
...
}
Run Code Online (Sandbox Code Playgroud)
有没有办法指定应自动转义的字符列表?因为此刻汽车逃脱的方式例如"|" ,但我想保留它.
TLP*_*TLP 14
您可以使用quotemeta,然后选择性地删除反斜杠准备字符串.例如:
my $str = quotemeta('foo${}|');
$str =~ s/\\(?=[|])//g;
say $str;
Run Code Online (Sandbox Code Playgroud)
输出:
foo\$\{\}|
Run Code Online (Sandbox Code Playgroud)
在替换中添加您想要未转义到字符类的任何字符,例如[|?()].