我查看了PHP在PCRE Patterns上提供的文档。我正在使用第三方插件来处理来自用户的一些文本,并且以下preg_replace由于缺少终止而失败。 (preg_replace():编译失败:缺少终止]用于字符类
$input = preg_replace('/[\]/i','',$userInput);
从我所看到的终止分隔符是/与一个只有一个\的字符类。我,如果我能正确阅读,告诉表达不关心大写或小写。我看到打开[和关闭]。
为什么会抛出错误? preg_replace试图做什么?
答案 0 :(得分:3)
你需要转义\
否则它会逃脱]
(你需要转义两次,一次是PHP字符串,一次是PCRE)。
$input = preg_replace('/[\\\]/i','',$userInput);
您可以完全省略[
和]
(以及i
)。
$input = preg_replace('/\\\/','',$userInput);
或者,您可以使用str_replace
:
$input = str_replace('\\','',$userInput);