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

王林
リリース: 2023-06-24 12:15:07
オリジナル
715 人が閲覧しました

プログラミングでは、URL アドレスが第 9 レベル ドメイン名であるかどうかを検証する必要があることがよくありますが、この場合、正規表現を使用して検証できます。この記事では、golang で正規表現を使用して URL アドレスが第 9 レベル ドメイン名であるかどうかを確認する方法を紹介します。

golang で正規表現を使用するには、通常、「regexp」パッケージの導入が必要です。このパッケージは、正規表現を表すための Regexp 構造を提供します。この構造体を使用した MatchString メソッドは、通常のマッチングに使用できます。

まず、URL アドレスが正しい形式であることを確認する必要があります。一般に、URL アドレスは、プロトコル、ドメイン名、パスなどの複数の部分で構成されている必要があります。ここでは、URL アドレスの「ドメイン名」部分が第 9 レベルのドメイン名であるかどうかのみを確認します。

第 9 レベルのドメイン名は、各部分が「.」で区切られた 9 つの部分で構成される特別なドメイン名を指します。例: www.example.com.cn 第 9 レベルのドメイン名の各部分は、英語の文字、数字、または水平線で構成されます。各部分は 63 文字以内にする必要があります。ドメイン名全体の長さは 255 文字を超えることはできません。

次は、第 9 レベルのドメイン名に一致する正規表現の例です。

^([a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9].)+[a-zA-Z]{2,}.$
ログイン後にコピー

このうち、"^" は一致する文字列の先頭を示し、"$" は一致する文字列の先頭を示します。一致する文字列の終わり。かっこは正規表現のグループを表し、「[a-zA-Z0-9]」は文字または数字の一致を表し、「-」はハイフン文字の一致を表します。 「{0,61}」は、0 ~ 61 文字と一致することを意味します。 「[a-zA-Z]{2,}」は、少なくとも 2 つの文字を一致させて、それが合法的なトップレベル ドメイン名であることを確認することを意味します。 「.」はピリオドと一致することを意味します。

次は、正規表現を使用して URL アドレスが第 9 レベルのドメイン名であるかどうかを確認するサンプル コードです:

package main

import (
    "fmt"
    "regexp"
)

func main() {
    // 定义正则表达式
    pattern := "^([a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]\.)+[a-zA-Z]{2,}\.$"
    reg := regexp.MustCompile(pattern)

    // 测试数据
    url1 := "www.example.com.cn."
    url2 := "www.google.com."
    url3 := "www.123456789012345678901234567890123456789012345678901234567890123.com."
    url4 := "www.abcdefg-12345.com."

    // 验证URL是否为九级域名
    fmt.Printf("%s is a nine-level domain? %t
", url1, reg.MatchString(url1))
    fmt.Printf("%s is a nine-level domain? %t
", url2, reg.MatchString(url2))
    fmt.Printf("%s is a nine-level domain? %t
", url3, reg.MatchString(url3))
    fmt.Printf("%s is a nine-level domain? %t
", url4, reg.MatchString(url4))
}
ログイン後にコピー

出力結果は次のとおりです:

www.example.com.cn. is a nine-level domain? true
www.google.com. is a nine-level domain? false
www.123456789012345678901234567890123456789012345678901234567890123.com. is a nine-level domain? false
www.abcdefg-12345.com. is a nine-level domain? true
ログイン後にコピー

Asご覧のとおり、最初と最後の URL アドレスは第 9 レベルのドメイン名であると正しく判断され、2 番目と 3 番目の URL アドレスは非第 9 レベルのドメイン名であると判断されました。

つまり、golang で正規表現を使用すると、URL アドレスが第 9 レベルのドメイン名であるか、またはその他の形式要件であるかを簡単に検証できます。実際のアプリケーションでは、照合の必要に応じて、対応する正規表現を定義できます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート