正则表达式:^[a-zA-Z]+(?:[\\s'.-]*[a-zA-Z]+)*$我想在其上添加另一个验证,即最少 3 个字符和最多 15 个字符。正则表达式:^([a-zA-Z]+(?:[\\s'.-]*[a-zA-Z]+)*){3,28}$这是验证最小字符而不是最大字符。任何帮助表示赞赏。
1 回答

慕少森
TA贡献2019条经验 获得超9个赞
您可以使用正向前瞻(?=.{3,15}$
来检查字符串的长度是否为 3 到 15 个字符。
因为字符串的最小长度是 3 并且必须以 a-zA-Z 开头和结尾,所以在这种情况下,您可以在中间组合 2 个字符类。
我认为您的模式可以通过删除组的重复来简化,因为积极向前看:
^(?=.{3,15}$)[a-zA-Z]+[\\s'.a-zA-Z-]*[a-zA-Z]+$
解释
^
字符串的开始(?=.{3,15}$)
积极前瞻断言长度 3-15[a-zA-Z]+
匹配 1+ 次小写/大写字符 az[\\s'.a-zA-Z-]*
匹配任何列出的 0 次以上的字符类[a-zA-Z]+
匹配 1+ 次小写/大写字符 az$
字符串的结尾
查看Java 演示
添加回答
举报
0/150
提交
取消