我目前正在尝试为五位数字字符串设计正则表达式,该字符串将用于存储航班号。这个数字恰好是5个数字字符,这很重要。到目前为止,我已经想出了这个,但看起来有点松弛:
@NotNull
@Size(min = 5, max = 6)
@Pattern(regexp = "[0-9]{5}", message = "Please use a number with five digits")
@Column(name = "flight_number")
private String flightNumber;
即,指定最小值和最大值之类的事情,当字符串长度只有5个字符时,似乎有点过分。有人可以建议对此进行改进吗?
答案 0 :(得分:1)
您正在使用的正则表达式:ImageView
非常接近您希望实现的目标。 问题就是说你只是说匹配5位。
您需要做的是简单地添加[0-9]{5}
和^
锚点来指示正则表达式引擎确保字符串完全由组成你想要什么因此,$
变为[0-9]{5}
或^[0-9]{5}$
。
答案 1 :(得分:1)
试试这个,它应该
^\d{5}$
答案 2 :(得分:0)
我个人觉得利用Java的内置数学逻辑更加舒服。所以我会做这样的事情:
int flightNumber = ...; // your code assigns this
if (flightNumber < 0 || flightNumber >= 100000) {
logger.error("Bad input");
}
String flightNumberAsString = String.valueOf(flightNumber);