-2

我需要帮助在特殊字符之前添加反斜杠。注意:我不能使用任何模块,所以我需要创建简单的脚本。

假设你有这样的行:

<link class="include" rel="stylesheet" type="text/css" href="../css/style.css" />

现在我想在任何 " 或其他特殊 Perl 字符之前添加 "\",例如:

$%/!`|

最后应该是:

<link class=\"include\" rel=\"stylesheet\" type=\"text/css\" href=\"../css/style.css\" />

我尝试使用:

$line =~ s/["%'\/{|}]+/\\$1/g;

没用。

我应该使用什么正则表达式?

4

1 回答 1

2

您期望特殊字符在$1. 为此,您需要使用( )

$line =~   s/ ( ["%'\/{|}] ) /\\$1/xg;

请注意,我添加了一些间距和 //x 合格以使 ( ) 更加突出。

另一种方法是使用前瞻。

$line =~ s/(?= [%'\/{|}] ) /\\/xg;
于 2012-12-22T19:34:43.500 回答