字符串清理,以支持ñ,á,é,í,ó,ú等特殊字符

时间:2011-06-02 17:21:20

标签: php regex

我目前正在使用此脚本来清理文本块...

function rseo_sanitize($s) {
    $result = preg_replace("/[^a-zA-Z0-9'-]+/", "", html_entity_decode($s, ENT_QUOTES));
    return $result;
}

我想添加对特殊字符集合的支持,例如ñ,á,é,í,ó,ú等

如何将这些(以及更大的西班牙语字符集合)整合到preg_replace中?

2 个答案:

答案 0 :(得分:2)

您可以使用/\pL+/u匹配Unicode中的所有字母符号。

仅在PCRE中没有单独的西班牙语字母平面,但您可以尝试:

 /[^\p{Latin}0-9'-]+/u

这包括我认为的ISO Latin-1字符集中的所有内容。这包括其他欧洲语言,而不仅仅是西班牙语。但是否则你真的必须单独列出所需的字母。

答案 1 :(得分:0)

您应该使用\wu修饰符

示例:

/[^\w]+/u