我需要在Java中检查字符串是否仅由Unicode值[\ u0030- \ u0039]或[\ u0660- \ u0669]组成。最有效的方法是什么?
最佳答案
使用\ 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
正如Holger在下面的评论中提到的。
\x{0030}-\x{0039}
与[0-9]
等效。因此可以替代,并且更具可读性。