0

您好,我正在制作一个 PHP 脚本,我需要为我的 preg_replace 函数转义一个字符串,并且我的 php 服务器由于某种原因没有显示错误,所以我无法检测到我在哪里犯了错误!

字符串是/*1*\

我在尝试:'@\/\*1\*\@' => 'HERE!'

由于某种原因它不起作用!帮助?

4

1 回答 1

1

如果您@用作分隔符,则不必转义正斜杠。然而,反斜杠需要更多的转义,一次用于 PHP 字符串上下文,一次用于 PCRE:

 ~/\*1\*\\\\~

为清楚起见~,此处用作分隔符。

(更准确地说,你会像在 PHP 字符串中一样转义每个反斜杠。尽管 PHP 通常会保留它,如果它通常是单一的。)\\

我偶尔用来减少转义的东西是字符类(通常不建议使用)和x可读性修饰符(通常建议使用):

~ [/]  [*]  1  [*]  [\\\\]  ~x

请注意,反斜杠仍然需要倍增。

于 2013-08-21T23:59:44.443 回答