Maison  >  Article  >  développement back-end  >  Comment vérifier si le mot de passe contient des espaces en utilisant une expression régulière dans Golang

Comment vérifier si le mot de passe contient des espaces en utilisant une expression régulière dans Golang

WBOY
WBOYoriginal
2023-06-24 11:34:391429parcourir

En Golang, les expressions régulières sont un outil très puissant qui peut être utilisé pour détecter si une chaîne correspond à un certain modèle. Lors de la vérification des mots de passe, une exigence courante est que le mot de passe ne puisse pas contenir d'espaces. Alors, comment utiliser des expressions régulières dans Golang pour détecter si le mot de passe contient des espaces ? Cet article vous le présentera en détail.

1. Présentation des expressions régulières

L'expression régulière est un langage utilisé pour faire correspondre des chaînes. Elle peut aider les développeurs à extraire rapidement les informations requises à partir de grandes quantités de texte. Dans Golang, la fonction de correspondance d'expressions régulières peut être implémentée en utilisant le package "regexp" de la bibliothèque standard. Ce package fournit des fonctions et des types pour créer et faire correspondre des expressions régulières.

En golang, la syntaxe des expressions régulières est à peu près la même que dans les autres langages. Les métacaractères courants sont les suivants :

  • () : utilisé pour le regroupement, vous pouvez modifier la priorité de l'opérateur.
  • [] : utilisé pour décrire une collection de personnages.
  • {} : Utilisé pour décrire le nombre de répétitions. Par exemple, {1,3} signifie des caractères correspondants répétés 1 à 3 fois.
  • * : Faites correspondre le caractère précédent 0 fois ou plus.
  • + : Faites correspondre le personnage précédent 1 ou plusieurs fois.
  • ? : Faites correspondre le caractère précédent 0 ou 1 fois.
  • . : Peut correspondre à n'importe quel caractère (sauf la nouvelle ligne).
  • d : correspond à n'importe quel caractère numérique, équivalent à [0-9].
  • D : correspond à tout caractère non numérique, équivalent à 1.
  • w : correspond à n'importe quel caractère alphabétique ou numérique, équivalent à [a-zA-Z0-9_].
  • W : correspond à tout caractère autre qu'une lettre ou un caractère numérique, équivalent à 2.
  • s : correspond à n'importe quel caractère d'espace (y compris l'espace, la tabulation, le retour chariot, etc.), équivalent à [
    ].
  • S : fait correspondre n'importe quel caractère autre qu'un espace.

2. Vérifiez si le mot de passe contient des espaces

Maintenant, nous essayons d'utiliser des expressions régulières pour vérifier si le mot de passe contient des espaces. En supposant que nous avons obtenu le mot de passe saisi par l'utilisateur, nous pouvons utiliser la méthode suivante pour le vérifier :

package main

import (
    "fmt"
    "regexp"
)

func checkPassword(password string) bool {
    pattern := `^[^s]+$` // 定义正则表达式
    matched, err := regexp.MatchString(pattern, password) // 匹配字符串
    if err != nil {
        // 这里处理匹配错误的情况
    }
    return matched
}

func main() {
    password := "abc123" // 测试用例1,不包含空格,应返回true
    fmt.Println(checkPassword(password)) // 输出true

    password = "abc 123" // 测试用例2,包含空格,应返回false
    fmt.Println(checkPassword(password)) // 输出false
}

Dans l'exemple ci-dessus, nous avons défini une fonction nommée "checkPassword", qui accepte un paramètre de type chaîne "password", utilisé pour vérifier si le mot de passe répond aux exigences. Une variable nommée "pattern" est définie dans la fonction pour stocker l'expression régulière à laquelle nous voulons correspondre, c'est-à-dire "^3+$". Ce que signifie cette expression régulière est la suivante : la chaîne doit commencer par un caractère autre que des espaces, se terminer par un caractère autre que des espaces et la chaîne ne peut contenir aucun caractère d'espacement.

Dans la fonction, nous utilisons d'abord la fonction "regexp.MatchString" pour faire correspondre la chaîne "mot de passe" à détecter et l'expression régulière "modèle". Renvoie vrai si la correspondance est réussie, faux sinon. Il convient de noter que si une erreur se produit lors du processus de correspondance, un objet d'erreur non nul sera renvoyé. Par conséquent, nous avons besoin d’une gestion des erreurs dans le code.

Dans la fonction principale, nous avons écrit deux cas de test, un contenant des espaces et un sans espaces. Après avoir exécuté le programme, vous pouvez voir que le résultat est comme prévu.

3. Résumé

Cet article explique comment utiliser les expressions régulières dans Golang pour vérifier si le mot de passe contient des espaces. En utilisant des expressions régulières, nous pouvons facilement détecter si une chaîne correspond à un modèle spécifique. Dans Golang, la bibliothèque standard fournit un package appelé « regexp » pour aider les développeurs à créer et à faire correspondre des expressions régulières. Grâce à ce package, nous pouvons rapidement implémenter des fonctions de correspondance de chaînes pour répondre à divers besoins de vérification.


  1. 0-9
  2. a-zA-Z0-9_
  3. s

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