我正在尝试为大于1080的任何整数提供一个正则表达式。因此以下数字将匹配:
@Entity
public class Volunteer extends Person{
// @Access(AccessType.PROPERTY)
@OneToMany(mappedBy="volunteer", cascade = { CascadeType.ALL })
private Set<Event> event;
public Set<Event> getEvent() {
return this.event;
}
public void setEvent(Set<Event> events) {
this.event = events;
}
// add this for service file error
private Set<Volunteer> volunteerName;
public void setVolunteer(Set<Volunteer> volunteerNames) {
this.volunteerName = volunteerNames;
}
public Set<Volunteer> getVolunteers() {
return this.volunteerName;
}
}
我碰到过这篇文章:https://codeshare.co.uk/blog/regular-expression-regex-for-a-number-greater-than-1200/,但不适用于1300之类的数字。
答案 0 :(得分:1)
使用正则表达式这样做是一个糟糕的主意,但是如果您有真正的需求(例如某些只允许您在过滤器中使用正则表达式的软件),则有可能。让我们一次迈出一步,让我们从大数字到小数字工作,因为它使思考变得更容易:
[1-9][0-9]{4,}
[2-9][0-9]{3}
1[1-9][0-9]{2}
109[0-9]
108[1-9]
以相反的顺序将它们放在一起,^(?:108[1-9]|109[0-9]|1[1-9][0-9]{2}|[2-9][0-9]{3}|[1-9][0-9]{4,})$
应该可以工作。如果您希望数字格式不那么宽松,可以允许可选的前导+
或任意数量的前导0
(但我们正在检查的部分中不包括它们)。那让我们
^\+?0*(?:108[1-9]|109[0-9]|1[1-9][0-9]{2}|[2-9][0-9]{3}|[1-9][0-9]{4,})$