@Pattern,JSR303 bean验证:正则表达式检查最多5个字而不是空白

时间:2011-12-06 16:19:43

标签: java regex spring-mvc bean-validation

我在spring-mvc托管bean中使用JSR303 bean验证注释来验证文本输入。 我需要检查

  • 如果一个字符串包含最多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说: 无效的转义序列(有效的转义序列是\ b \ t \ n \ f \ r \“\'\)

2 个答案:

答案 0 :(得分:3)

使用双反斜杠(\)来转义特殊字符反斜杠。

答案 1 :(得分:3)

如果你愿意,你可以试试这个较短的版本。

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

应该工作。

顺便说一下你的正则表达式:

匹配一到五个字符(最多5个字符的字?),(后跟空格,后跟零到四个字符。)零或四次。这是你想要的吗? :)