java - 检查字符串是否仅包含 Unicode 值 [\u0030-\u0039] 或 [\u0660-\u0669]
问题描述
我需要在 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
正如霍尔格在下面的评论中提到的那样。\x{0030}-\x{0039}
等价于[0-9]
。所以可以被替换并且更具可读性。
推荐阅读
- bash - 无法用另一个子字符串替换包含子字符串的目录中的所有文件名
- java - 将类方法组织成专门的子类是一种好习惯吗?
- apache-spark - 无法在 Maven 中导入 spark SQL
- java - 如何通过 id 获取其他用户信息(用户名、名字)?[钥匙斗篷]
- sql - 使用追加模型在 BigQuery 中进行部分行更新
- java - 为什么 netty FastThreadLocal public final V get(InternalThreadLocalMap threadLocalMap) 不调用 registerCleaner 方法?
- android - 如何在 android 中使用开放街道地图包含 GeoJson?
- python - Pandas - 检查其他列是否有基于不同列的重复项
- mysql - 在字符串表mysql语句中查找数字
- python - 是否有可能为 Fiddler 或 mitmdump 中的每个请求动态更改 IP?