我对preg_replace很糟糕,我很难搞清楚如何将单引号和双引号添加到允许的字符中。任何帮助将不胜感激。
$comments = "It's an- "Apple"!?@#$%^&*()=";
$comments = preg_replace('/[^A-Za-z0-9\s,.!?+-]+', '', $comments);
输出: 它是一个苹果!?
答案 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);
// --^^^^---