java - Hibernate Annotation 中的多重模式匹配

标签 java regex hibernate pattern-matching hibernate-annotations

我需要验证以下情况的一个字段。为此我需要通过注释编写正则表达式...

  1. 如果值不是(仅 9 个数字)或(2 个数字后跟一个连字符,后跟 7 个数字)-(显示错误消息 1)

  2. 九位数字不可能全部为零。-(显示错误消息2)

最佳答案

以下正则表达式应该执行:

^(?=.*[1-9])\d{2}-?\d{7}$

说明:

^             # Start of string
(?=.*([1-9])) # Assert that there is at least one digit > 0, capture that digit
\d{2}         # Match any two digits
-?            # Match an optional hyphen
\d{7}         # Match any seven digits
$             # End of string

为了检查是否满足条件 1 或 2,请在匹配后检查组号 1 ($1) - 如果未定义,则字符串中没有非零数字。

关于java - Hibernate Annotation 中的多重模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31378554/

相关文章:

java - Java 如何选择调用哪个重载函数?

java - if 语句中可以有两个条件吗

regex - 将不同的范围应用于 Sublime Text 语法定义文件中的相同字符

javascript - 否定随机正则表达式

javascript - 如何解决 JS 正则表达式在按键期间不起作用的问题

java - com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException : Unknown column 'productId3' in 'where clause'

java - 是否可以将 show_sql 的所有输出放在一个单独的文件中?

java - 判断api请求是来自CURL还是POSTMAN?

java - Weblogic启动异常

mysql - Spring 数据JPA : findOne with a unique key