我需要验证带有2个组的字符串,这些组用下一个规则用一个空格分隔:
每组需要至少2个字符长但小于或等于15
两个小组在一起的时间不超过20个字符(不计算空格)
群组只能包含字母(简单,它是[a-zA-Z])
遵循这些规则,这里有一些例子
名字姓氏(有效)
Somename T(无效,第二名是< 2)
Somethingsomettt Here(无效,第一个是> 15)
Somethingsome Somethingsome(无效,总计> 20)
如果不是2 + 2< = total< = 20条件,那就简单[a-zA-Z]{2,15} [a-zA-Z]{2,15}
。
甚至可以用这种方式限制吗?如果是 - 怎么样?
更新
只是为了它,结果正则表达式应该是^(?=[a-zA-Z ]{5,21}$)[a-zA-z]{2,15} [a-zA-Z]{2,15}$
,@ vks最接近它。不过,还要感谢@popovitsj和@Avinash Raj。
答案 0 :(得分:1)
答案 1 :(得分:1)
这可以通过前瞻来完成。像这样:
^(?=.{1,20}$)[a-zA-z]{2,14} [a-zA-Z]{2,14}$
答案 2 :(得分:1)