ICU:音译,然后删除所有非字母数字字符

弗拉迪斯拉夫·拉斯特鲁斯尼

可以使用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调用完成所有操作吗?

KIKO软件

使用正确的工具完成工作

我看不到您现在在做什么。

ICU音译首先是面向语言的。它试图保留意义。

另一方面,正则表达式可以详细处理字符,从而确保文件名仅限于所选字符。

在这种情况下,这种组合是完美的。

我当然已经在寻找解决您问题的方法。但老实说,我找不到所有可能的输入都适用的东西。

例如,并非所有字符(我们都会考虑使用标点符号)都被删除了[:Punctuation:] Remove;尝试使用俄语名称:Корнильев, Кирилл应用后,id它变为:Kornilʹev Kirill显然,这不是标点符号,但您不希望它出现在文件名中。

因此,我建议为工作使用正确的工具:

  1. 使用ICU可获得等效的最佳ASCII。只有使用Latin-ASCII;id就行了。漂亮又简单。
  2. 然后像您一样使用正则表达式来确保只剩下需要的字符。

确实没有错。

PS:就我个人而言,我认为撰写ICU用户指南的人不应称赞做得好的工作。真是一团糟。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java从字符串的开头和结尾删除所有非字母数字字符

来自分类Dev

从删除所有非字母数字字符的字符串中获取列表

来自分类Dev

如何从变量中删除所有非数字字符

来自分类Dev

如何使用正则表达式从字符串中删除所有非字母数字字符(“#”除外)?

来自分类Dev

删除所有非字母数字字符,但保留变音符号(重音符号)和-(破折号)

来自分类Dev

替换除某些字符外的所有非字母数字字符

来自分类Dev

将字符串转换为Python中所有非字母数字字符的列表

来自分类Dev

如何删除任何非字母数字字符?

来自分类Dev

删除批处理变量中的非字母数字字符

来自分类Dev

删除批处理变量中的非字母数字字符

来自分类Dev

过滤掉 JavaScript 中的所有非字母数字字符

来自分类Dev

PHP-从字符串中删除所有非数字字符

来自分类Dev

从字符串中删除(几乎)所有非数字字符

来自分类Dev

从字符串中删除(几乎)所有非数字字符

来自分类Dev

logstash-从字段中删除所有非数字字符

来自分类Dev

从NSString中删除所有非数字字符,并保留空格

来自分类Dev

删除所有非数字字符,但保留一个特定的单词

来自分类Dev

从文本文件中删除所有非数字字符

来自分类Dev

使用以下命令从文本文件中删除所有数字和字母数字字符

来自分类Dev

正则表达式,用于将除/以外的所有非字母数字字符替换为empty(“”)字符

来自分类Dev

sed:删除所有字符,直到第一个字母数字字符

来自分类Dev

正则表达式删除非字母数字字符和点后的所有字符?

来自分类Dev

R中的非字母数字字符

来自分类Dev

如何添加非字母数字字符

来自分类常见问题

用一个空格替换所有非字母数字字符,换行和多个空格

来自分类Dev

如何使用Hive REGEXP_EXTRACT()函数删除非字母数字或非数字字符

来自分类Dev

从Varchar列中删除字母数字字符,然后转换为Float

来自分类Dev

如何删除Javascript字符串中的所有非数字字符(减号,点号和逗号除外)?

来自分类Dev

从字符串中删除特殊的非字母数字字符

Related 相关文章

  1. 1

    Java从字符串的开头和结尾删除所有非字母数字字符

  2. 2

    从删除所有非字母数字字符的字符串中获取列表

  3. 3

    如何从变量中删除所有非数字字符

  4. 4

    如何使用正则表达式从字符串中删除所有非字母数字字符(“#”除外)?

  5. 5

    删除所有非字母数字字符,但保留变音符号(重音符号)和-(破折号)

  6. 6

    替换除某些字符外的所有非字母数字字符

  7. 7

    将字符串转换为Python中所有非字母数字字符的列表

  8. 8

    如何删除任何非字母数字字符?

  9. 9

    删除批处理变量中的非字母数字字符

  10. 10

    删除批处理变量中的非字母数字字符

  11. 11

    过滤掉 JavaScript 中的所有非字母数字字符

  12. 12

    PHP-从字符串中删除所有非数字字符

  13. 13

    从字符串中删除(几乎)所有非数字字符

  14. 14

    从字符串中删除(几乎)所有非数字字符

  15. 15

    logstash-从字段中删除所有非数字字符

  16. 16

    从NSString中删除所有非数字字符,并保留空格

  17. 17

    删除所有非数字字符,但保留一个特定的单词

  18. 18

    从文本文件中删除所有非数字字符

  19. 19

    使用以下命令从文本文件中删除所有数字和字母数字字符

  20. 20

    正则表达式,用于将除/以外的所有非字母数字字符替换为empty(“”)字符

  21. 21

    sed:删除所有字符,直到第一个字母数字字符

  22. 22

    正则表达式删除非字母数字字符和点后的所有字符?

  23. 23

    R中的非字母数字字符

  24. 24

    如何添加非字母数字字符

  25. 25

    用一个空格替换所有非字母数字字符,换行和多个空格

  26. 26

    如何使用Hive REGEXP_EXTRACT()函数删除非字母数字或非数字字符

  27. 27

    从Varchar列中删除字母数字字符,然后转换为Float

  28. 28

    如何删除Javascript字符串中的所有非数字字符(减号,点号和逗号除外)?

  29. 29

    从字符串中删除特殊的非字母数字字符

热门标签

归档