我正在使用PDO课程,但我正在试图删除除...之外的所有字符:
function cleaner($str){
return preg_replace('/[^a-zA-Z0-9éàêïòé\,\.\']/',' ',trim($str));
}
正如您所看到的,它是一个简单的函数,但它删除了所有字符éàêïòé
示例:更清洁('$#$<<> - // La sourisaétémangéeparle chat') //返回
La souris a t mang e par le chat (老鼠已被猫吃掉:))
任何帮助将不胜感激
答案 0 :(得分:2)
您需要在模式中添加/ u模式修饰符以在PCRE中启用UTF-8支持。这假设一切都已经是UTF-8了。
http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php
答案 1 :(得分:1)
$str = '$#$<<>-//La souris a été mangée par le chat ';
$str = preg_replace('/[^a-zA-Z0-9éàêïòé\,\.\']/u',' ',trim($str));
$str = '$#$<<>-//La souris a été mangée par le chat ';
$str = preg_replace('/[^\p{L}\,\.\']/u',' ',trim($str));
这两个片段对我来说都适用于PHP 5.3。第二个正则表达式受限制较少,并接受所有Unicode字母。