【问题标题】:regular expression for the address of domain name server域名服务器地址的正则表达式
【发布时间】:2025-12-11 12:40:02
【问题描述】:

我想为 DNS 创建一个正则表达式。

我的要求是有效的 DNS 应该是:

  1. www.x.y
  2. www.t.x.y
  3. www.s.t.x.y

只允许使用 4 个点 (.)。我试过这个正则表达式,但它不起作用。请提出建议。

^[a-zA-Z0-9]+.[a-zA-Z0-9]+.[a-zA-z0-9]+.[a-zA-z0-9]$

【问题讨论】:

  • 为什么不使用解析器?
  • 一旦我找到了这个美丽的服务,它可能会有所帮助。 debuggex.com
  • . 通常是匹配任何字符的特殊字符。您可能需要转义它,因为您需要 . 而不是元字符。
  • @StNickolas 这是一个了不起的网站。 +1 指出这一点。
  • @anonymous 会 this link 帮忙吗?

标签: java regex


【解决方案1】:

一个非常简单的正则表达式可能是一些东西

^www\.[a-zA-Z0-9]+\.[a-zA-Z0-9]+(\.[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)?)?$

三点:

  • 点 (.) 是一个特殊字符,必须转义 (\.)
  • 我们需要最后两节的可选子句。
  • 您的示例以 www 开头,因此您需要包含它才能使用开始标记 (^)

【讨论】:

    【解决方案2】:
    【解决方案3】:

    试试这个正则表达式

    ^(www\.|)(([a-zA-Z0-9])+\.){1,4}[a-z]+$

    【讨论】:

      【解决方案4】:

      试试这个

      str.matches("www(\\.\\w+){2,4}")
      

      【讨论】: