如果我有一个字符串:
my $string = "a/hello/bye/d";
我想在字符串中找到的每个“/”符号前面添加一个“\”符号。有没有可能的方法来做到这一点?
示例:
$string = "a\/hello\/bye\/d";
答案 0 :(得分:1)
将正则表达式分隔符更改为|
,然后使用反斜杠正斜杠/
替换所有正斜杠\/
。必须逃避反斜杠,因为它本身就是逃避现象。字符。所以\\/
;尾随g
表示在任何地方执行替换,前导s
表示替换:s|\|\\/|g
。
阅读perldoc perlretut,以便对正则表达式进行友好的介绍。
my $string = "a/hello/bye/d";
$string =~ s|/|\\/|g;
print $string . "\n";
<强>输出强>
a\/hello\/bye\/d
答案 1 :(得分:1)
您可以使用quotemeta()来实现这一目标。
: perl -e 'my $string = "a/hello/bye/d"; print quotemeta($string); print "\n"'
a\/hello\/bye\/d