ホームページ  >  記事  >  バックエンド開発  >  golang で正規表現を使用して URL アドレスが第 11 レベルのドメイン名であるかどうかを確認する方法

golang で正規表現を使用して URL アドレスが第 11 レベルのドメイン名であるかどうかを確認する方法

WBOY
WBOYオリジナル
2023-06-24 08:27:241007ブラウズ

Golang では、正規表現は、URL アドレスが第 11 レベルのドメイン名であるかどうかを確認するために使用できる強力なツールです。この記事では、正規表現を使用してこれを実現する方法を検討します。

  1. 第 11 レベルのドメイン名とは何ですか?

インターネットでは、ドメイン名はネットワーク リソースを識別するために使用される文字列です。ドメイン名は階層構造に従って、上から「ルートドメイン名」、「トップレベルドメイン名」、「第2レベルドメイン名」、「第3レベルドメイン名」、「第4レベルドメイン名」と分かれています。 「名前」...「11 レベルのドメイン名」まで。

典型的な第 11 レベルのドメイン名は次のとおりです:

www.example.com.cn.foo.bar.baz.qux.fred.plugh.xyz

  1. 正規表現の検証ルール

正規表現を使用して、URL アドレスが第 11 レベルのドメイン名であるかどうかを検証できます。合法的な第 11 レベルのドメイン名では、次の条件を満たしている必要があります。

  • ドメイン名の長さは 253 文字を超えてはなりません;
  • すべてのレベルのドメイン名の長さは 63 文字を超えてはなりません;
  • 長さすべてのレベルのドメイン名は文字、数字、ダッシュ (「-」) のみで構成されます。
  • ドメイン名は文字または数字で終わる必要があります。

上記のルールに基づいて、次の正規表現を書くことができます:

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

上記の正規表現では、^ は文字列の先頭と一致することを意味し、$ は文字列の末尾と一致することを意味します。正規表現内の他の文字は、対応する文字の一致を示します。例:

  • [a-zA-Z0-9] は文字と数字の一致を示し、
  • - は水平線の一致を示します (エスケープ文字 "" が必要であることに注意してください);
  • {0,61} は、0 ~ 61 文字と一致することを意味します。
  1. Golang は正規表現検証を実装します

Golang では、regexp パッケージを使用して正規表現を処理できます。必要に応じて、次のコードを使用できます。

package main

import (
    "fmt"
    "regexp"
)

func main() {
    url := "www.example.com.cn.foo.bar.baz.qux.fred.plugh.xyz"
    regex := "^[a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.){9}[a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?$"
    matched, _ := regexp.MatchString(regex, url)
    if matched {
        fmt.Println("URL地址为11级域名")
    } else {
        fmt.Println("URL地址不是11级域名")
    }
}

上記のコードでは、まず URL アドレスを定義し、次に MatchString 関数を使用して正規表現の一致を実行します。照合が成功した場合、URL アドレスが第 11 レベルのドメイン名であることを意味します。

  1. 概要

この記事の学習を通じて、正規表現を使用して URL アドレスが第 11 レベルのドメイン名であるかどうかを確認する方法を学び、これを実装しました。 Golang の関数。 URL アドレスを検証する必要がある場合は、同様のルールに従って正規表現を記述し、処理に Golang の regexp パッケージを使用できます。

以上がgolang で正規表現を使用して URL アドレスが第 11 レベルのドメイン名であるかどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。