golang では正規表現を使用して、URL アドレスが第 2 レベルのドメイン名であるかどうかを確認するのが一般的な要件です。この記事では、golang で正規表現を使って検証する方法と、URL アドレスがセカンドレベル ドメイン名であるかどうかを検証するための正規表現の書き方を紹介します。
まず、golang での正規表現の基本的な使い方を見てみましょう。 Golang には正規表現ライブラリ regexp が用意されており、regexp パッケージを呼び出すことで正規表現を使用できます。
検証に正規表現を使用する前に、まず正規表現を記述する必要があります。以下は、第 2 レベルのドメイン名を表す正規表現です:
^[a-zA-Z0-9]+([-.]{1}[a-zA-Z0-9]+)*.[a-zA-Z]{2,5}$
この正規表現の意味は次のとおりです: 最初の文字が大文字、小文字、または数字であり、以下を含む文字列と一致します。ただし、ハイフンとピリオドに限定されません。 、英文字で終わり、長さが 2 ~ 5 の文字列。
次に、この正規表現を golang で検証に使用する方法を見てみましょう。以下は、正規表現を使用して URL が第 2 レベルのドメイン名であるかどうかを検証するサンプル コードです:
package main import ( "fmt" "regexp" ) func main() { url := "http://www.example.com" re := regexp.MustCompile(`^[a-zA-Z0-9]+([-.]{1}[a-zA-Z0-9]+)*.[a-zA-Z]{2,5}$`) match := re.MatchString(url) if match { fmt.Println("URL是一个二级域名") } else { fmt.Println("URL不是一个二级域名") } }
上記のコードでは、最初に検証する URL を定義します。次のコードでは、 call regexp パッケージ内の MatchString 関数を使用し、検証対象の文字列が指定された正規表現に適合するかどうかを判定します。一致する場合は true を返し、一致しない場合は false を返します。
実際の使用では、URL 内の特殊文字などの特殊な状況が発生する可能性があり、これらの特殊文字をエスケープする必要があります。もう 1 つの状況として、URL の大文字と小文字を無視する必要がある場合があり、この場合、正規表現で大文字と小文字を無視するオプションを使用する必要があります。以下は、正規表現を使用して URL が第 2 レベルのドメイン名であるかどうかを検証し、大文字と小文字と特殊文字を無視するサンプル コードです。
package main import ( "fmt" "regexp" ) func main() { url := "http://wwW.ExaMPle.com?foo=bar" re := regexp.MustCompile(`(?i)^[a-z0-9]+([-.]{1}[a-z0-9]+)*.[a-z]{2,5}$`) match := re.MatchString(url) if match { fmt.Println("URL是一个二级域名") } else { fmt.Println("URL不是一个二级域名") } }
上記のコードでは、最初に検証する URL を定義します。次のコードでは、regexp パッケージの関数 MatchString を呼び出します。この関数は、検証対象の文字列が指定された正規表現に準拠しているかどうかを判断するために使用されます。 (?i) は大文字と小文字を区別することを意味します。[a-z0-9] ([-.]{1}[a-z0-9] )*.[a-z]{2,5}$ は、第 2 レベルのドメイン名と一致することを意味します。 。
要約すると、正規表現を使用して URL が第 2 レベルのドメイン名であるかどうかを確認するのが一般的な要件です。 golang は正規表現の使用をサポートする regexp パッケージを提供します。対応する正規表現を記述し、MatchString 関数を使用してそれを検証するだけです。一部の特殊文字はエスケープする必要があり、大文字と小文字と特殊文字を考慮する必要がある場合もあることに注意してください。
以上がgolang で正規表現を使用して URL アドレスが第 2 レベルのドメイン名であるかどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。