Unicode:从关键字中剥离非字母数字字符


Unicode: Stripping non alphanumeric characters from keywords

我想规范化关键字,以摆脱非字母数字,但同时尊重unicode。

我有:

$keyword = trim($keyword);
$keyword = normalizer_normalize($keyword, Normalizer::FORM_KD);
$keyword = preg_replace('/[^'p{L}'p{N} ]/u', '', $keyword);
$keyword = normalizer_normalize($keyword, Normalizer::FORM_KC);

我的问题是,如果这将工作。是否有一些语言会删除重要字符?还是不删除不重要的?

我只想要单词——没有符号或标点符号。

我不知道什么是标记,我不确定是否我应该过滤其他类型的数字。字母数字是什么?(来源:http://us3.php.net/manual/en/regexp.reference.unicode.php)

最大的问题是:我想从希伯来字母中删除元音,但不想从欧洲字母中删除变音符号。规范化步骤能正确地完成这个任务吗?

编辑:当我测试这个时,它删除了欧洲字母的变音符。然后我使用KC进行第一次规范化,并删除了第二个,它似乎工作正常-但我只测试了欧洲字母和希伯来语-我不知道如何检查其他语言。

你可以在这里找到所有你想要的unicode属性的含义