Perl Regex:在字符串中的另一个符号前添加符号

时间:2018-02-21 08:40:00

标签: regex perl

如果我有一个字符串:

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

我想在字符串中找到的每个“/”符号前面添加一个“\”符号。有没有可能的方法来做到这一点?

示例:

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

2 个答案:

答案 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