Go 言語で正規表現を使用して文字列が正当な URL かどうかを判断する方法
日常のプログラム開発では、文字列が正当な URL かどうかを判断する必要があることがよくあります。 Go 言語は正規表現をサポートしており、正規表現を使用して URL の正当性を判断できます。以下では、Go 言語の正規表現を使用して文字列が正当な URL かどうかを判断する方法をコード例を添付して紹介します。
まず、Go 言語の正規表現ライブラリ regexp
をインポートする必要があります。コードは次のとおりです。
import ( "regexp" )
次に、URL を表すために使用される正規表現を定義する必要があります。 URL の正規表現にはさまざまな形式がありますが、ここでは単純な正規表現を使用して URL の正当性を判断します。コードは次のとおりです。
var urlRegex = regexp.MustCompile(`^(http|https)://[a-zA-Z0-9-.]+.[a-zA-Z0-9]{2,}(:[0-9]{2,5})?(/[a-zA-Z0-9#]+/?)*(?.+)?$`)
上記の正規表現の意味は次のとおりです。
^(http|https)
: http または https で始まります。 ##://
: :// 文字と一致します; [a-zA-Z0-9-.]
: 1 つまたはドメイン名を示すその他の文字と数字、ハイフンとドットの組み合わせ; .[a-zA-Z0-9]{2,}
: の 1 つ以上の組み合わせと一致します。トップレベル ドメイン名を示す文字と数字; (:[0-9]{2,5})?
: ポートを示す 1 つ以上の数字の組み合わせと一致します。番号。この部分は省略できます; (/[a-zA-Z0-9#] /?)*
: 文字、数字、# 文字の 1 つ以上の組み合わせに一致し、パス 。パス部分は省略できます; (?. )?
: クエリ パラメータを示す ? で始まる文字と一致します。この部分は省略可能です; $
: 文字列の終わりを示します。 次に、指定された文字列が正当な URL かどうかを判断する関数を作成できます。コードは以下のとおりです。
func isURLValid(url string) bool { return urlRegex.MatchString(url) }
上記関数は、正規表現のMatchString
メソッドを使用して一致判定を行っています。指定された文字列が正規表現の規則に準拠している場合は true
を返し、そうでない場合は false
を返します。
以下は、上記の関数を使用して文字列が正当な URL かどうかを判断する方法を示すサンプル プログラムです。コードは次のとおりです。
package main import ( "fmt" "regexp" ) var urlRegex = regexp.MustCompile(`^(http|https)://[a-zA-Z0-9-.]+.[a-zA-Z0-9]{2,}(:[0-9]{2,5})?(/[a-zA-Z0-9#]+/?)*(?.+)?$`) func isURLValid(url string) bool { return urlRegex.MatchString(url) } func main() { url := "https://www.example.com" fmt.Printf("The URL '%s' is valid: %v ", url, isURLValid(url)) url = "invalid_url" fmt.Printf("The URL '%s' is valid: %v ", url, isURLValid(url)) }
上記のサンプル プログラムを実行すると、次の結果が出力されます。
The URL 'https://www.example.com' is valid: true The URL 'invalid_url' is valid: false
上記の例を通じて、正規表現を使用して、正規表現が正しいかどうかを判断する方法を確認できます。 string は有効な URL です。実際の開発では、必要に応じて正規表現ルールを調整して判断することができます。もちろん、他の方法を使用して文字列が正当な URL かどうかを判断することもできます。正規表現はその 1 つにすぎません。
以上がGo 言語で正規表現を使用して文字列が有効な URL かどうかを判断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。