【发布时间】:2019-06-22 14:30:03
【问题描述】:
正则表达式:^[a-zA-Z]+(?:[\\s'.-]*[a-zA-Z]+)*$
我想在其上添加另一个验证,即最少 3 个字符和最多 15 个字符。
正则表达式:^([a-zA-Z]+(?:[\\s'.-]*[a-zA-Z]+)*){3,28}$
这是验证最小字符而不是最大字符。
感谢任何帮助。
【问题讨论】:
-
您已将整个模式包装在
{3,28}中,因此整个模式可能会重复 3 到 28 次。如果您想强制执行长度,只需在正则表达式之外执行:srt.length() >= 3 && str.length() <= 15 -
除了 Michael 提出的建议(你应该真正考虑一下,尤其是在性能很重要的情况下)之外,你可以使用积极的前瞻,例如
^(?=.{3,15}$)([a-zA-Z]+(?:[\\s'.-]*[a-zA-Z]+)*){3,}$ -
您能给我们一些示例输入吗?
-
你需要的是
^(?=.{3,15}$)[a-zA-Z]+(?:[\\s'.-]*[a-zA-Z]+)*$