使用Regex定义名称

时间:2015-01-19 11:51:06

标签: regex

我正在尝试使用Regex制定域名规则。名称长度应在2到63个字符之间,可以包含字母[a-zA-Z],数字[0-9]-符号。它无法以-开头或结尾,并且连续不能超过2 -。在3号和4号位置也禁止双-。请帮助我卡住至少一个条件逃脱我。

1 个答案:

答案 0 :(得分:4)

  

名称长度应在2到63个字符之间

^.{2,63}$
  

可以包含字母[a-zA-Z],数字[0-9]和'-ignign。

^[a-zA-Z0-9-]{2,63}$
  

无法使用' - '

开始或结束
^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]$
  

并且连续不能超过2' - '。

^(?!.*---)[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]$
  

在第3和第4位禁止加倍' - '。

^(?!.*---)(?!..--)(?!...--)[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]$

(?!)负零宽度前瞻断言(简称为负lookaheads)。它们确保在某个位置之前的字符串中某个条件不正确。