Maison > développement back-end > Golang > Comment utiliser des expressions régulières en langage Go pour déterminer si une chaîne est une URL légale

Comment utiliser des expressions régulières en langage Go pour déterminer si une chaîne est une URL légale

WBOY
Libérer: 2023-07-12 15:12:07
original
1864 Les gens l'ont consulté

Comment utiliser des expressions régulières en langage Go pour déterminer si une chaîne est une URL légale

Dans le développement quotidien de nos programmes, nous devons souvent déterminer si une chaîne est une URL légale. Le langage Go prend en charge les expressions régulières et nous pouvons utiliser des expressions régulières pour déterminer la légitimité de l'URL. Ci-dessous, nous présenterons comment utiliser les expressions régulières dans le langage Go pour déterminer si une chaîne est une URL légale et joindrons un exemple de code.

Tout d'abord, nous devons importer la bibliothèque d'expressions régulières du langage Go regexp. Le code est le suivant : regexp。代码如下:

import (
    "regexp"
)
Copier après la connexion

接下来,我们需要定义一个用于表示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#]+/?)*(?.+)?$`)
Copier après la connexion

上述正则表达式的含义是:

  • ^(http|https): 以http或https开头;
  • ://: 匹配://字符;
  • [a-zA-Z0-9-.]+: 匹配一个或多个字母、数字、连字符和点的组合,表示域名;
  • .[a-zA-Z0-9]{2,}: 匹配一个或多个字母和数字的组合,表示顶级域名;
  • (:[0-9]{2,5})?: 匹配一个或多个数字的组合,表示端口号。该部分可以省略;
  • (/[a-zA-Z0-9#]+/?)*: 匹配一个或多个字母、数字和#字符的组合,表示路径。路径部分可以省略;
  • (?.+)?: 匹配以?开头的字符,表示查询参数。该部分可以省略;
  • $: 表示字符串的结尾。

接下来,我们可以编写一个函数来判断给定的字符串是否为合法URL。代码如下:

func isURLValid(url string) bool {
    return urlRegex.MatchString(url)
}
Copier après la connexion

上述函数使用了正则表达式的MatchString方法来进行匹配判断。如果给定的字符串符合正则表达式的规则,则返回true,否则返回false

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))
}
Copier après la connexion

Ensuite, nous devons définir une expression régulière pour représenter l'URL. Les expressions régulières pour les URL peuvent prendre plusieurs formes. Ici, nous utilisons une expression régulière simple pour déterminer la légitimité de l'URL. Le code est le suivant :

The URL 'https://www.example.com' is valid: true
The URL 'invalid_url' is valid: false
Copier après la connexion
La signification de l'expression régulière ci-dessus est :

  • ^(http|https) : commence par http ou https ;
  • :// : correspond au caractère :// ;
  • [a-zA-Z0-9-.]+ : correspond à un ou plus de lettres et de chiffres, une combinaison de tirets et de points, indiquant un nom de domaine
  • .[a-zA-Z0-9]{2,> : correspond à un ou plusieurs ; combinaisons de lettres et de chiffres, indiquant le nom de domaine de premier niveau ;
  • (:[0-9]{2,5})? : correspond à une combinaison d'un ou plusieurs numéros, indiquant le numéro de port. Cette partie peut être omise ;
  • (/[a-zA-Z0-9#]+/?)* : correspond à une ou plusieurs combinaisons de lettres, de chiffres et de # caractères. , représente le chemin. La partie chemin peut être omise ;
  • (?.+)? : correspond aux caractères commençant par ?, indiquant les paramètres de la requête. Cette partie peut être omise ;
  • $ : indique la fin de la chaîne.
Ensuite, nous pouvons écrire une fonction pour déterminer si la chaîne donnée est une URL légale. Le code est le suivant :

rrreee

La fonction ci-dessus utilise la méthode MatchString des expressions régulières pour effectuer un jugement de correspondance. Si la chaîne donnée est conforme aux règles de l'expression régulière, renvoie true, sinon renvoie false. 🎜🎜Ce qui suit est un exemple de programme qui montre comment utiliser la fonction ci-dessus pour déterminer si une chaîne est une URL légale. Le code est le suivant : 🎜rrreee🎜Exécutez l'exemple de programme ci-dessus et les résultats suivants seront affichés : 🎜rrreee🎜Grâce à l'exemple ci-dessus, nous pouvons voir comment utiliser des expressions régulières pour déterminer si une chaîne est une URL légale. Dans le développement réel, nous pouvons ajuster les règles des expressions régulières pour porter des jugements en fonction de nos propres besoins. Bien entendu, nous pouvons également utiliser d’autres méthodes pour déterminer si une chaîne est une URL légale, et les expressions régulières ne sont que l’une d’entre elles. 🎜

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal