【发布时间】:2013-11-08 20:13:23
【问题描述】:
我正在尝试使用以下正则表达式验证 Java 中的字符串以查看它是否与 randomUUID 格式匹配
^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$
现在这可以正常工作并提取无效字符串等等——但是,如果我将一个空字符串传递给正则表达式,它会返回 true,因此当我对 Pattern 注释执行验证时,不会报告任何违反约束的情况。这是预期的行为吗,因为 String 为 null 它没有执行任何验证?
作为一种解决方法,在我用 Pattern 注释注释的 getter 方法上,我使用了这个
return id != null ? id : "null"
这行得通,但它似乎有点... hacky :)
【问题讨论】:
-
标准 Java 没有
Pattern注释,只有类。你在使用一些框架吗? -
我想传递一个空字符串会产生一个 NullPointerException。你能在你实际应用模式的地方添加代码吗?
-
我正在使用 Hibernate 注释,据我所知,当 null 被传递时,没有执行正则表达式检查,所以我认为这是我的代码出了问题!
-
Hibernate 有模式注解
-
@SCassidy1986 查看我的更新答案。
标签: java regex annotations