【问题标题】:Check if string contains CJK (chinese) characters [duplicate]检查字符串是否包含 CJK(中文)字符 [重复]
【发布时间】:2014-02-26 17:23:17
【问题描述】:

我需要检查一个字符串是否包含中文字符。 搜索后我发现我必须在这个模式\u31C0-\u31EF 上查看正则表达式, 但我无法让正则表达式工作。

有人遇到过这种情况吗?正则表达式正确吗?

【问题讨论】:

  • 使用"[\u31C0-\u31EF]" 确实会匹配代码点在0x31C00x31EF 范围内的任何字符。你需要方括号。我不知道实际数字是否正确;在这个范围内只有 48 个字符,我认为 CJK 不止于此,但我知道什么?
  • CJK 中的字符肯定更多,请参阅here
  • 副本未使用 java 标记进行标记。这真的是重复的吗?

标签: java android regex string


【解决方案1】:

正如here 所讨论的,在Java 7 中(即正则表达式编译器遇到requirement RL1.2 Properties from UTS#18 Unicode Regular Expressions),您可以使用以下正则表达式来匹配中文(嗯,CJK)字符:

\p{script=Han}

可以简单理解为

\p{Han}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-21
    • 1970-01-01
    • 2019-06-06
    • 2020-09-20
    • 1970-01-01
    相关资源
    最近更新 更多