Regex:用Regex验证域名

  • 本文关键字:Regex 域名 验证 regex
  • 更新时间 :
  • 英文 :


我正在尝试使用Regex验证域名。

这是我的正则表达式:

^((?!-)(*.)?[A-Za-z0-9-]{1,63}(?<!-).)+[A-Za-z0-9-]{1,63}

基本上,我不想匹配以"-"结尾的字符串"之前!"例:test.google -.com

在这里是"google-"但它越来越匹配,这对我来说是个问题。

虽然"测试-.google.com"没有得到匹配,这是预期的

我怀疑,"消极的回头看"((?

请告诉我下一步该怎么做。

您可以使用重复模式,从[A-Za-z0-9]开始匹配,这样您就不需要在开始时提前查看。

那么你可以在开始匹配.之前匹配一个可选的-,但只有当它不是在最后一次出现之前,直到字符串的末尾。

注意尽管该模式与示例数据匹配,但这并不验证域名。

^[A-Za-z0-9]{1,63}(?:-[A-Za-z0-9]{1,63})*(?:-(?!.[A-Za-z0-9]{1,63}$))?(?:.[A-Za-z0-9]{1,63})+$

Regex演示

相关内容

  • 没有找到相关文章

最新更新