Maison > Article > développement back-end > Comment utiliser des expressions régulières dans Golang pour vérifier si l'adresse URL est un nom de domaine de neuvième niveau
En programmation, il est souvent nécessaire de vérifier si l'adresse URL est un nom de domaine de neuvième niveau. Dans ce cas, des expressions régulières peuvent être utilisées pour la vérification. Cet article explique comment utiliser les expressions régulières dans Golang pour vérifier si l'adresse URL est un nom de domaine de neuvième niveau.
En golang, l'utilisation d'expressions régulières nécessite généralement l'introduction du package "regexp". Ce package fournit une structure Regexp pour représenter une expression régulière. La méthode MatchString utilisant cette structure peut être utilisée pour une correspondance régulière.
Tout d'abord, vous devez vous assurer que l'adresse URL est au bon format. De manière générale, une adresse URL doit être composée de plusieurs parties : protocole, nom de domaine, chemin, etc. Ici, nous vérifions uniquement si la partie « nom de domaine » de l'adresse URL est un nom de domaine de neuvième niveau.
Le nom de domaine de neuvième niveau fait référence à un nom de domaine spécial, composé de neuf parties, chaque partie séparée par ".". Par exemple : www.example.com.cn. Chaque partie du nom de domaine de neuvième niveau est composée de lettres anglaises, de chiffres ou de lignes horizontales. Chaque partie ne peut pas comporter plus de 63 caractères. La longueur du nom de domaine complet ne peut pas dépasser 255 caractères.
Ce qui suit est un exemple d'expression régulière qui correspond à un nom de domaine de neuvième niveau :
^([a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9].)+[a-zA-Z]{2,}.$
Parmi eux, "^" représente le début de la chaîne correspondante et "$" représente la fin de la chaîne correspondante. Les parenthèses représentent un groupe d'expressions régulières, "[a-zA-Z0-9]" représente la correspondance d'une lettre ou d'un chiffre et "-" représente la correspondance d'un trait d'union. "{0,61}" signifie faire correspondre zéro à 61 caractères. "[a-zA-Z]{2,}" signifie faire correspondre au moins deux lettres pour garantir qu'il s'agit d'un nom de domaine légal de premier niveau. "." signifie correspondre à un point.
Ce qui suit est un exemple de code qui utilise des expressions régulières pour vérifier si l'adresse URL est un nom de domaine de neuvième niveau :
package main import ( "fmt" "regexp" ) func main() { // 定义正则表达式 pattern := "^([a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]\.)+[a-zA-Z]{2,}\.$" reg := regexp.MustCompile(pattern) // 测试数据 url1 := "www.example.com.cn." url2 := "www.google.com." url3 := "www.123456789012345678901234567890123456789012345678901234567890123.com." url4 := "www.abcdefg-12345.com." // 验证URL是否为九级域名 fmt.Printf("%s is a nine-level domain? %t ", url1, reg.MatchString(url1)) fmt.Printf("%s is a nine-level domain? %t ", url2, reg.MatchString(url2)) fmt.Printf("%s is a nine-level domain? %t ", url3, reg.MatchString(url3)) fmt.Printf("%s is a nine-level domain? %t ", url4, reg.MatchString(url4)) }
Le résultat de sortie est :
www.example.com.cn. is a nine-level domain? true www.google.com. is a nine-level domain? false www.123456789012345678901234567890123456789012345678901234567890123.com. is a nine-level domain? false www.abcdefg-12345.com. is a nine-level domain? true
Comme vous pouvez le voir, la première et la dernière adresse URL sont toutes deux correctement déterminé comme étant un nom de domaine de niveau neuf, tandis que les deuxième et troisième adresses URL sont déterminées comme étant des noms de domaine autres que le neuvième niveau.
En bref, l'utilisation d'expressions régulières dans Golang peut facilement vérifier si l'adresse URL est un nom de domaine de neuvième niveau ou d'autres exigences de format. Dans les applications pratiques, les expressions régulières correspondantes peuvent être définies selon les besoins pour la correspondance.
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!