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