@Pattern, проверка bean-компонента JSR303: регулярное выражение проверяет не более 5 слов - PullRequest
1 голос
/ 06 декабря 2011

Я использую аннотации проверки bean-компонента JSR303 в моем управляемом bean-компоненте spring-mvc для проверки ввода текста.Мне нужно проверить

  • , содержит ли строка максимум 5 слов (здесь слово представляет собой буквенную или буквенно-цифровую строку), и эта строка не может быть пустой (один пробел)

Я пытаюсь с этим: (только для сопоставления 5 слов)

@Pattern(message="max 5 words please" , regexp="^[a-zA-Z+#\-.0-9]{1,5}(\s[a-zA-Z+#\-.0-9]{1,5}){0,4}$")
String keywords;

, но моя Eclipse IDE говорит: Неверная escape-последовательность (допустимы \ b \ t \ n \ f \ r \ "\ '\)

Ответы [ 2 ]

3 голосов
/ 06 декабря 2011

Вы можете попробовать эту более короткую версию, если хотите.

regexp="^(\\b[a-zA-Z\\d+#.-]+\\b(?:\\s+|$)){0,5}$")

Должно работать.

Кстати, в своем регулярном выражении вы говорите:

Совпадение от одного до пяти символов (слово не более 5 символов?), (С последующим пробелом, затем от 0 до 4 символов) ноль или четыре раза. Это то, что вы хотите? :)

3 голосов
/ 06 декабря 2011

Используйте двойную обратную косую черту (\), чтобы избежать обратной косой черты специального символа.

...