golang で正規表現を使用して、入力が完全な URL アドレスであるかどうかを確認する方法

PHPz
リリース: 2023-06-24 13:30:10
オリジナル
1540 人が閲覧しました

golang では、正規表現を使用して入力が完全な URL アドレスであるかどうかを確認することが非常に重要です。正規表現は、文字列内のテキスト パターンを照合するために使用できる記述言語です。入力が特定の形式に準拠しているかどうかを確認する必要がある場合、正規表現を使用すると、入力が正しいかどうかを迅速に判断できます。では、golang で正規表現を使用して、入力が完全な URL アドレスであるかどうかを確認するにはどうすればよいでしょうか?この記事ではそれについて説明します。

まず、URL アドレスの基本的な形式を理解する必要があります。URL には次の部分が含まれます:

  • プロトコル: (http、ftp、mailto など)。
  • ホスト名: (例: www.example.com)。
  • ポート番号: (例: 80)。
  • パス: (例:/index.html)。
  • クエリ文字列: (例: id=1&name=Tom)。
  • フラグメント: (例: #top)。

これらのセクションには、プロトコルとホスト名を含める必要があります。したがって、正規表現を使用して、入力文字列にこれら 2 つの部分が含まれているかどうかを確認できます。 golang の組み込み正規表現パッケージ regexp を使用して、入力文字列が必要な形式と一致するかどうかを照合できます。

サンプル コードは次のとおりです。

package main

import (
    "fmt"
    "regexp"
)

func main() {
    str := "https://www.example.com/index.html?id=1&name=Tom#top"
    pattern := `^(http|https)://[a-zA-Z0-9]+(.[a-zA-Z0-9]+)+([a-zA-Z0-9-._?,'+/\~:#[]@!$&*])*$`

    match, err := regexp.MatchString(pattern, str)
    if err != nil {
        fmt.Printf("Error: %s
", err)
        return
    }

    if match {
        fmt.Println("Valid URL")
    } else {
        fmt.Println("Invalid URL")
    }
}
ログイン後にコピー

このコードでは、正規表現 ^(http|https)://[a-zA-Z0-9] を使用します。 (.[a-zA-Z0-9] ) ([a-zA-Z0-9-._?,' /\~:#[]@!$&*])*$ 入力と一致します文字列。このうち、# は文字列の先頭を表し、$ は文字列の末尾を表し、http|https は http または https プロトコルの一致を表し、[a-zA- Z0-9] (.[a-zA-Z0-9] ) はホスト名と一致することを意味します [a-zA-Z0-9-._?,' /\ ~:#[]@! $&*] は、パス、クエリ文字列、フラグメントなど、URL 内の他の部分と一致することを意味します。

マッチングに成功した場合は「有効な URL」が出力され、そうでない場合は「無効な URL」が出力されます。

この正規表現は、URL の形式が正しいかどうかを単に検証するものであり、URL の存在を検証するものではないことに注意してください。 URL の存在を確認する必要がある場合は、他の方法を使用する必要があります。

つまり、正規表現を使用して入力が完全な URL アドレスであるかどうかを確認することで、入力が特定の形式に準拠しているかどうかを迅速に判断するのに役立ちます。 golang では、正規表現を検証するために regexp パッケージを使用するのは非常に簡単で、MatchString 関数を使用するだけです。

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

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