Regex Perl正则表达式:在字符串中的另一个符号前面添加一个符号

Regex Perl正则表达式:在字符串中的另一个符号前面添加一个符号,regex,perl,Regex,Perl,如果我有一个字符串: my $string = "a/hello/bye/d"; 我想在字符串中找到的每个/符号前面添加\符号。有什么可能的方法可以做到这一点吗 例如: $string = "a\/hello\/bye\/d"; 将正则表达式分隔符更改为|,然后将所有正斜杠/替换为反斜杠正斜杠\/。反斜杠必须转义,因为它本身就是“转义”字符。所以\\/;尾随的g表示在任何地方执行替换,前导的s表示替换:s | \ \ \ \ g 了解正则表达式的友好介绍 my $string = "a/he

如果我有一个字符串:

my $string = "a/hello/bye/d";
我想在字符串中找到的每个/符号前面添加\符号。有什么可能的方法可以做到这一点吗

例如:

$string = "a\/hello\/bye\/d";

将正则表达式分隔符更改为|,然后将所有正斜杠/替换为反斜杠正斜杠\/。反斜杠必须转义,因为它本身就是“转义”字符。所以\\/;尾随的g表示在任何地方执行替换,前导的s表示替换:s | \ \ \ \ g

了解正则表达式的友好介绍

my $string = "a/hello/bye/d";
$string =~ s|/|\\/|g;
print $string . "\n";
输出


您可以使用quotemeta来实现这一点

: perl -e 'my $string = "a/hello/bye/d"; print quotemeta($string); print "\n"'
a\/hello\/bye\/d
: perl -e 'my $string = "a/hello/bye/d"; print quotemeta($string); print "\n"'
a\/hello\/bye\/d