【发布时间】:2014-09-18 09:10:47
【问题描述】:
是否可以在 ICU 中完成而不回退到正则表达式?
目前我像这样规范化文件名:
protected function normalizeFilename($filename)
{
$transliterator = Transliterator::createFromRules(
'Any-Latin; Latin-ASCII; [:Punctuation:] Remove;'
);
$filename = $transliterator->transliterate($filename);
$filename = preg_replace('/[^A-Za-z0-9_]/', '', $filename);
return $filename;
}
我可以在这里摆脱正则表达式并使用 ICU 调用来做所有事情吗?
【问题讨论】:
-
只有 50 个?这个问题让我大吃一惊,然后才 50?让它 200 .....
-
@UltraDEVV 我怀疑提高赏金会增加知道答案的程序员数量;)
-
不知道这是否仍然相关,但您可以在规则集中指定一个字符类:
'Any-Latin; Latin-ASCII; [^A-Za-z0-9_] Remove;'
标签: php icu transliteration