如何在单引号字符串中使用'?

时间:2012-01-25 21:55:57

标签: php syntax-error parse-error

我对preg_replace使用以下内容:

$replace = '/[!\/."",#\s\-:?"]+/';

例如,当我尝试在上面添加'时,它会在文件中出现错误:

  

解析错误:语法错误,第38行的... / s.php中的意外T_NS_SEPARATOR

此外,是否有更简单的方法列出要替换的所有符号?

2 个答案:

答案 0 :(得分:2)

如果您想摆脱任何符号,请尝试:

$replace = "/[^a-zA-Z0-9 ]/";

^表示“除了以下内容之外的任何内容”。将要允许的任何字符添加到列表中。它比列出每个符号更容易,并且必须处理转义。

答案 1 :(得分:1)

您需要转义'字符,因为它也是单引号字符串的分隔符:

$replace = '/[!\/.,#\s\-:?"\']+/';
                           ^^

通过在其前面添加\来完成转义。这通常是合乎逻辑的,因为否则您将完成字符串定义,然后导致语法错误(PHP无法解析您的代码)。请参阅Single quoted String­Docs

  

是否有更简单的方法列出要替换的所有符号?

仅仅列出它们(就像你已经做的那样)是不是很容易?所以我必须承认,我不清楚你真正关心的是什么,所以我不能提供更容易的东西。