我设法做到这一点:
^[a-zA-Z0-9]+(?:--?[a-zA-Z0-9]+)*$
但上面的表达并没有限制我需要它的长度。我需要模式只匹配5-6个字符。所以,这就是应该如何解决的问题:
safety (valid)
safet- (invalid)
s-a-fe (valid)
-safet (invalid)
s7-45 (valid)
s--fs (invalid)
连续的连字符无效。前导和尾随连字符无效。总长度(包括任何连字符)应为5-6个字符。我尝试用范围(+
)替换{5,6}
s,但没有运气。我感谢任何帮助。
我试过的另一条路线是:
^[A-Z0-9][A-Z0-9-]{3,4}[A-Z0-9]$i
这似乎很好而且效率很高,但它允许连续的连字符。
答案 0 :(得分:3)
答案 1 :(得分:1)