PHP Regex抛出错误消息

时间:2013-03-29 18:59:49

标签: php regex preg-replace expression

我查看了PHP在PCRE Patterns上提供的文档。我正在使用第三方插件来处理来自用户的一些文本,并且以下preg_replace由于缺少终止而失败。 (preg_replace():编译失败:缺少终止]用于字符类

$input  = preg_replace('/[\]/i','',$userInput);

从我所看到的终止分隔符是/与一个只有一个\的字符类。我,如果我能正确阅读,告诉表达不关心大写或小写。我看到打开[和关闭]。

为什么会抛出错误? preg_replace试图做什么?

1 个答案:

答案 0 :(得分:3)

你需要转义\否则它会逃脱](你需要转义两次,一次是PHP字符串,一次是PCRE)。

$input  = preg_replace('/[\\\]/i','',$userInput);

您可以完全省略[](以及i)。

$input  = preg_replace('/\\\/','',$userInput);

或者,您可以使用str_replace

$input  = str_replace('\\','',$userInput);