PHP preg_replace保留引号

时间:2017-03-12 15:21:00

标签: php preg-replace

我对preg_replace很糟糕,我很难搞清楚如何将单引号和双引号添加到允许的字符中。任何帮助将不胜感激。

$comments = "It's an- "Apple"!?@#$%^&*()=";
$comments = preg_replace('/[^A-Za-z0-9\s,.!?+-]+', '', $comments);

输出: 它是一个苹果!?

1 个答案:

答案 0 :(得分:0)

转义单引号(\')并正常使用双引号,并在正则表达式的末尾添加/。虽然在regex character class内的末尾移动连字符或在正则表达式内转义,因为regex character class(范围)具有特殊含义。

$comments = preg_replace('/[^A-Za-z0-9\s,.!?+\\-"\']+/', '', $comments);
//                                         ---^^^^^---
// or
$comments = preg_replace('/[^A-Za-z0-9\s,.!?+"\'-]+/', '', $comments);
//                                         --^^^^---