我需要在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]等效。因此可以替代,并且更具可读性。

10-06 15:23