Я использую класс Java Validator для проверки некоторых полей ввода из моего класса Spring Object.Я проверяю URI, и они могут быть в любом формате, http: / myURL / uri или readFromURI.v1.Первоначально я только проверял первую часть, поэтому мой класс Object имел:
@Pattern(regexp="[\\w\\s.,;:*&@(){}+-=?/|!\\[\\]%#$~]{0,512}", message="incorrect format")
private String URI;
Теперь, если пользователь установит флажок в моем приложении, он введет значение в качестве второго формата, поэтому ясоздал новое регулярное выражение:
@Pattern.List({
@Pattern(regexp="[\\w\\s.,;:*&@(){}+-=?/|!\\[\\]%#$~]{0,512}", message="incorrect format"),
@Pattern(regexp="^\"(Create|Read|Update|Delete)[a-zA-Z]+.*vd+\"${0,512}", message="incorrect format")
})
private String URI;
Регулярное выражение, вероятно, неправильно для второй части, и я, вероятно, задам этот вопрос позже.Но теперь, когда я проверяю любой из этих форматов, он не соответствует обоим условиям.Поэтому я предполагаю, что так, как я написал, он пытается применить оба регулярных выражения.Как я могу выбрать один на основе значения?Это поле значения находится в том же классе, если это помогает:
private String URI;
private boolean useHttp; //if true, validate using [\\w\\s.,;:*&@(){}+-=?/|!\\[\\]%#$~]{0,512}