为什么PHP的preg_replace函数不能像转义“\”一样?

时间:2016-01-14 17:08:42

标签: php regex

我使用RegExr网站来测试我的正则表达式。在该网站上,它可以使用RegEx字符串/\\/g轻松找到字符“\”。但是当我在php中使用它时它会抛出:

  

警告:preg_replace():没有结束分隔符'/'

我的代码

$str = "0123456789 _+-.,!@#$%^&*();\/|<>";

echo preg_replace('/\\/', '', $str);

为什么PHP不想逃脱“\”?

1 个答案:

答案 0 :(得分:1)

在正则表达式中使用它时,使用\\在替换中使用它,使用\\\\将变为\\,将被解释为单个反斜杠。

像这样使用:

<?php
$str = "0123456789 _+-.,!@#$%^&*();\/|<>";
echo preg_replace('/\\\\/', '', $str);

输出:

0123456789 _+-.,!@#$%^&*();/|<>