正则表达式中的字符范围

正则表达式:^[a-zA-Z]+(?:[\\s'.-]*[a-zA-Z]+)*$

我想在其上添加另一个验证,即最少 3 个字符和最多 15 个字符。

正则表达式:^([a-zA-Z]+(?:[\\s'.-]*[a-zA-Z]+)*){3,28}$

这是验证最小字符而不是最大字符。

任何帮助表示赞赏。


茅侃侃
浏览 278回答 1
1回答

慕少森

您可以使用正向前瞻(?=.{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 演示
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java