2011-12-06 20 views
1

我使用JSR303 Bean验证注释在我的春天MVC托管bean来验证文本输入。 我需要检查@Pattern,JSR303 Bean验证:正则表达式检查最多5个字,而不是空白

  • 如果字符串包含最多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 \牛逼\ n \˚F\ r \” \” \)

回答

3

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

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

应该工作。

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

匹配一到五个字符(最多5个字符的字?),0或4次(其次是空间,后面的零至四个字符)。这是你想要的吗? :)

+1

十分感谢您。我喜欢这个较短的版本! Tassos Bassoukos也是对的。谢谢你们俩。 –

3

使用双反斜线(\),为了躲避特殊字符反斜杠。