首页 > 解决方案 > 检查字符串是否仅包含 Unicode 值 [\u0030-\u0039] 或 [\u0660-\u0669]

问题描述

我需要在 java 中检查一个字符串是否仅由 Unicode 值 [\u0030-\u0039] 或 [\u0660-\u0669] 组成。这样做最有效的方法是什么?

标签: javaregexunicodejava-8

解决方案


使用 \x 表示 unicode 字符:

^([\x{0030}-\x{0039}\x{0660}-\x{0669}]+)$

如果 patternt 也应该匹配一个空字符串,请使用 * 而不是 +

如果您不想允许混合您提供的两组字符,请使用此选项:

^([\x{0030}-\x{0039}]+|[\x{0660}-\x{0669}]+)$

https://regex101.com/r/xqWL4q/6

正如霍尔格在下面的评论中提到的那样。\x{0030}-\x{0039}等价于[0-9]。所以可以被替换并且更具可读性。


推荐阅读