Maison >développement back-end >Golang >Comment utiliser des expressions régulières dans Golang pour vérifier si l'adresse URL est un nom de domaine de deuxième niveau

Comment utiliser des expressions régulières dans Golang pour vérifier si l'adresse URL est un nom de domaine de deuxième niveau

王林
王林original
2023-06-25 18:30:151428parcourir

Utiliser des expressions régulières en golang pour vérifier si l'adresse URL est un nom de domaine de deuxième niveau est une exigence relativement courante. Dans cet article, nous expliquerons comment utiliser les expressions régulières dans Golang à des fins de vérification et comment écrire des expressions régulières pour vérifier si une adresse URL est un nom de domaine de deuxième niveau.

Tout d’abord, jetons un coup d’œil à l’utilisation de base des expressions régulières dans Golang. Golang fournit la bibliothèque d'expressions régulières regexp. Nous pouvons utiliser des expressions régulières en appelant le package regexp.

Avant d'utiliser des expressions régulières pour la vérification, nous devons d'abord écrire une expression régulière. Ce qui suit est une expression régulière qui représente un nom de domaine de deuxième niveau :

^[a-zA-Z0-9]+([-.]{1}[a-zA-Z0-9]+)*.[a-zA-Z]{2,5}$

La signification de cette expression régulière est : correspond à une chaîne dont la première lettre peut être des lettres majuscules ou minuscules ou des chiffres, qui peuvent inclure, sans toutefois s'y limiter, des traits d'union. et des points, et se termine par une chaîne A se terminant par une lettre anglaise et d'une longueur de 2 à 5.

Voyons ensuite comment utiliser cette expression régulière pour la vérification dans Golang. Voici un exemple de code qui utilise des expressions régulières pour vérifier si l'URL est un nom de domaine de deuxième niveau :

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不是一个二级域名")
    }
}

Dans le code ci-dessus, nous définissons d'abord une URL à vérifier. Dans le code suivant, nous appelons le package regexp. La fonction MatchString permet de déterminer si la chaîne à vérifier est conforme à l'expression régulière spécifiée. Si cela correspond, renvoyez vrai, sinon renvoyez faux.

En utilisation réelle, nous pouvons rencontrer des situations particulières, telles que certains caractères spéciaux dans l'URL, et nous devons échapper à ces caractères spéciaux. Une autre situation est que nous devons ignorer la casse dans l'URL. Dans ce cas, nous devons utiliser l'option ignorer la casse dans l'expression régulière. Voici un exemple de code qui utilise des expressions régulières pour vérifier si l'URL est un nom de domaine de deuxième niveau et ignore la casse et les caractères spéciaux :

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不是一个二级域名")
    }
}

Dans le code ci-dessus, nous définissons d'abord une URL à vérifier, et dans le code suivant , nous avons appelé la fonction MatchString dans le package regexp. Cette fonction est utilisée pour déterminer si la chaîne à vérifier est conforme à l'expression régulière spécifiée. (?i) signifie ignorer la casse, [a-z0-9]+([-.]{1}[a-z0-9]+)*.[a-z]{2,5}$ signifie correspondre à un domaine de deuxième niveau nom.

En résumé, il est courant d'utiliser des expressions régulières pour vérifier si une URL est un nom de domaine de deuxième niveau. golang fournit le package regexp pour prendre en charge l'utilisation d'expressions régulières. Il nous suffit d'écrire l'expression régulière correspondante et d'utiliser la fonction MatchString pour la vérifier. Il convient de noter que certains caractères spéciaux doivent être échappés et qu'il existe également des cas où la casse et les caractères spéciaux doivent être pris en compte.

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