preg_replace删除特殊字符


preg_replace delete special chars

想知道如何替换字符串上的所有特殊字符,如:hello this is a test!

我写了这个代码:

$text = preg_replace("/[^A-Za-z0-9]/", ' ', $text);

这项工作需要更大的灵活性来允许像áéíóú...这样的特殊字符,并只删除某些字符,比如::!"#$%&/()=?¿¡。。。

有什么想法吗?

使用$text = preg_replace("/[^'p{L}'p{N}]/u", ' ', $text);

这将匹配所有不是字母或数字的字符,并将适当地处理Unicode字母。