我有一个文本字段,用户可以在其中输入组织的星级评分到数据库中,其中列的最大长度为5.
我已经尝试使用".*\\*{1,5}$"
匹配字符串,但是当我输入6个字符时它似乎不起作用.
从数据库抛出的错误消息是:
我想在触发错误消息之前捕获输入.
我试过用
".*\\*{1,5}$"
上面写着"匹配任意数量的任何字符,随后1-5星号(不包括可能换行,这取决于你用什么标志),在字符串的结尾",而不是"赛1-5星号." 当六个星号测试它,它传递的字符串,因为它相匹配的前五个星号与.*
(因为它是贪婪),然后一个星号在与结束\*{1,5}
.
仅匹配1-5个星号而不是其他:( ^\*{1,5}$
作为字符串文字:)"^\\*{1,5}$"
.该^
是"输入的开始"锚\*
(\\*
字符串文字中)是一个转义的星号(否则它具有特殊的意义),{1,5}
是指"至少一个和多达五次,"并且$
是"输入的结束"锚.更多的文档Pattern
.