-1

我有一个简短的 PHP 脚本,我想在其中查找字符串中每个包含两个或多个反斜杠的系列,并将其替换为单个反斜杠:

<?php
    $link = 'www\\root\\\\test\\';
    echo preg_replace('/[\\]{2,}/', '\\', $link);
?>

所以我想我实际上正确地转义了所有反斜杠,但是当我运行代码时,它给了我一个错误,说]找不到终止括号。所以在我看来,这个是转义而不是反斜杠,这让我感到困惑。在字符类中转义反斜杠实际上是否采用不同的方法?

4

1 回答 1

0

啊好吧,所以我自己找到了一个答案:

preg_replace('/[\\\\]{2,}/', '\\', $link);

我需要双重转义它,因为 PHP 需要先自行转义它。

于 2016-02-29T12:24:00.637 回答