2

我想规范化关键字以摆脱非字母数字,但同时尊重 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 进行第一次标准化,并删除了第二次,它似乎工作正常 - 但我只测试了欧洲字母和希伯来语 - 我不知道如何检查其他语言。

4

1 回答 1

0

您可以在此处找到有关 unicode 属性含义的所有信息

于 2013-06-07T18:41:24.923 回答