正则表达式为五位数字字符串

时间:2015-05-19 09:25:19

标签: java regex annotations

我目前正在尝试为五位数字字符串设计正则表达式,该字符串将用于存储航班号。这个数字恰好是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个字符时,似乎有点过分。有人可以建议对此进行改进吗?

3 个答案:

答案 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);