Yes
就像+
表示您可以使用一个或多个{3,30}
匹配 3 到 30 之间
例如[a-z]{3,30}
匹配 3 到 30 个小写字母
来自Pattern 类的文档 http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
X{n,m} X, at least n but not more than m times
在您的情况下,匹配 3-30 个字母后跟空格可以通过以下方式完成:
([a-zA-Z]\s){3,30}
如果您需要尾随空格,如果不需要,您可以使用:(2-29 次字母+空格,然后是字母)
([a-zA-Z]\s){2,29}[a-zA-Z]
如果您希望将空格计为字符,则需要将该数字除以 2 以获得
([a-zA-Z]\s){1,14}[a-zA-Z]
你可以加\s?
如果尾随空格是可选的,则到最后一个。这些都经过测试正则星球 http://www.regexplanet.com/advanced/java/index.html
如果您希望整个字符串的长度在 3 到 30 个字符之间,您可以使用前瞻添加(?=^.{3,30}$)
在正则表达式的开头并删除其他大小限制
话虽如此,老实说我可能只是测试一下String
's .length
财产。它更具可读性。