Maison  >  Article  >  développement back-end  >  Comment utiliser des expressions régulières dans Golang pour vérifier si l'entrée est une adresse URL complète

Comment utiliser des expressions régulières dans Golang pour vérifier si l'entrée est une adresse URL complète

PHPz
PHPzoriginal
2023-06-24 13:30:101525parcourir

En golang, il est très important d'utiliser des expressions régulières pour vérifier si une entrée est une adresse URL complète. Les expressions régulières sont un langage descriptif qui peut être utilisé pour faire correspondre des modèles de texte dans des chaînes. Lorsque nous devons vérifier si une entrée est conforme à un certain format, les expressions régulières peuvent nous aider à déterminer rapidement si l'entrée est correcte. Alors, comment utiliser des expressions régulières dans Golang pour vérifier si l'entrée est une adresse URL complète ? Cet article vous l'expliquera.

Tout d'abord, nous devons comprendre le format de base d'une adresse URL. Une URL contient les parties suivantes :

  • Protocole : (tel que http, ftp, mailto).
  • Nom d'hôte : (par exemple www.example.com).
  • Numéro de port : (par exemple 80).
  • Chemin : (par exemple /index.html).
  • Chaîne de requête : (par exemple ?id=1&name=Tom).
  • Extrait : (par exemple #top).

Dans ces sections, le protocole et le nom d'hôte sont obligatoires. Par conséquent, nous pouvons utiliser des expressions régulières pour vérifier si la chaîne d'entrée contient ces deux parties. Nous pouvons utiliser l'expression rationnelle du package d'expressions régulières intégrée de Golang pour déterminer si la chaîne d'entrée correspond au format souhaité.

L'exemple de code est le suivant :

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")
    }
}

Dans ce code, nous utilisons des expressions régulières^(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-._?,'+/~:#[]@!$&*] pour faire correspondre d'autres parties de l'URL, telles que des chemins, des chaînes de requête, des fragments, etc.

Lorsque la correspondance est réussie, affichez "URL valide", sinon affichez "URL invalide".

Il est à noter que cette expression régulière vérifie simplement si le format de l'URL est correct, mais ne vérifie pas l'existence de l'URL. Si vous devez vérifier l'existence de l'URL, vous devez utiliser d'autres méthodes.

En bref, en utilisant des expressions régulières pour vérifier si l'entrée est une adresse URL complète, cela peut nous aider à déterminer rapidement si l'entrée est conforme à un format spécifique. En Golang, il est très simple d'utiliser le package regexp pour vérifier les expressions régulières, utilisez simplement la fonction MatchString.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn