Maison  >  Article  >  développement back-end  >  Python - Vérifiez si une chaîne correspond à une liste d'expressions régulières

Python - Vérifiez si une chaîne correspond à une liste d'expressions régulières

WBOY
WBOYavant
2023-09-04 08:49:081651parcourir

Python - 检查字符串是否与正则表达式列表匹配

Une expression régulière, également appelée expression régulière, est une séquence de caractères qui forme un modèle de recherche. C'est l'un des outils puissants pour la correspondance de modèles et la manipulation de chaînes. En python, nous avons un module appelé re qui aide à former des expressions régulières.

Les modèles d'expressions régulières

se composent de caractères ordinaires (par exemple, des lettres, des chiffres) et de caractères spéciaux appelés métacaractères. Les métacaractères ont des significations particulières et nous permettent de définir des modèles de recherche complexes. Voici quelques métacaractères couramment utilisés dans les expressions régulières Python.

  • . (point)

    - correspond à n'importe quel caractère, sauf la nouvelle ligne.

  • ^ (caret)

    − correspond au début d'une chaîne.

  • $(USD)

    - Correspond à la fin d'une chaîne.

  • * (astérisque)

    - Correspond à zéro ou plusieurs occurrences du modèle précédent.

  • + (signe plus)

    - Correspond à une ou plusieurs occurrences du modèle précédent.

  • ? (point d'interrogation)

    - Correspond à zéro ou à une occurrence du modèle précédent.

  • [] (crochets)

    - Définit une classe de caractères et correspond à n'importe quel caractère entre crochets.

  • () (parenthèses)

    - Regroupez les modèles et capturez les sous-chaînes correspondantes.

  • (backslash)

    - Échapper aux métacaractères ou introduire des séquences spéciales.

  • D'autres expressions régulières supplémentaires prennent en charge des séquences spéciales représentant des modèles courants, comme décrit ci-dessous.

  • d

    - Correspond à n'importe quel nombre équivalent à [0-9].

  • w

    - Correspond à tout caractère alphanumérique équivalent à [a-zA-Z0-9_].

  • s

    - correspond à n'importe quel caractère d'espacement.

  • b

    - Faites correspondre les limites des mots.

  • A

    - Correspond au début d'une chaîne similaire à ^ , mais il ne prend pas en compte les modèles multilignes.

  • Z

    - Correspond à la fin d'une chaîne similaire à $ , mais il ne prend pas en compte les modèles multilignes.

  • Il existe plusieurs façons en Python de vérifier si une chaîne correspond à une liste d'expressions régulières (regex). Examinons chaque méthode une par une.

Utiliser le module re

Le module «

re

» de Python fournit des fonctions pour travailler avec des expressions régulières. Nous pouvons utiliser la fonction 're.match()' du module re pour vérifier si une chaîne correspond à un modèle d'expression régulière et pour vérifier la liste des modèles d'expression régulière, nous pouvons parcourir la liste et pour chaque modèle, appeler ' re.match()'. Exemple

Dans cet exemple, la fonction

re.match()

est utilisée pour vérifier si une chaîne correspond à chaque modèle de la regex_list. Si une correspondance est trouvée, le motif sera imprimé.

import re
string = "Hello, Welcome to Tutorialspoint!"
regex_list = [r"Hello", r"\bWelcome\b", r"\d+"]
for pattern in regex_list:
   if re.match(pattern, string):
      print(f"String matches pattern: {pattern}")
Sortie

String matches pattern: Hello

Utilisez les compréhensions de liste et re.search()

Une autre façon de trouver des modèles correspondants consiste à utiliser une compréhension de liste et la fonction

re.search()

. En utilisant une compréhension de liste sans itérer la liste d'expressions régulières, nous pouvons créer une nouvelle liste contenant le modèle correspondant. Exemple

Dans cet exemple, nous utilisons une compréhension de liste et la ligne

[pattern for pattern in regex_list if re.search(pattern, string)]

pour créer une nouvelle liste matching_patterns contenant les expressions régulières dans regex_list qui correspondent au style de chaîne mode. Nous utilisons ensuite la fonction re.search() pour trouver la première occurrence du motif dans la chaîne.

import re
string = "Hello,happy learning!"
regex_list = [r"Hello", r"\bWelcome\b", r"\d+"]
matching_patterns = [pattern for pattern in regex_list if re.search(pattern, string)]
print("Matching patterns:", matching_patterns)
Sortie

Matching patterns: ['Hello']

Utilisez la fonction any() et re.search()

La fonction

any()

est l'une des fonctions disponibles en Python qui peut être utilisée pour vérifier si un élément d'une séquence de liste d'expressions régulières est true. Nous pouvons combiner cela avec re.search() pour vérifier si un modèle d'expression régulière correspond à la chaîne. Exemple

Dans cet exemple, la fonction

any()

est utilisée pour parcourir les éléments de la liste d'expressions régulières et utiliser re.search() pour vérifier si un modèle correspond à la chaîne. . Si une correspondance est trouvée, il affichera "La chaîne correspond à au moins un motif".

import re
string = "Hello, Welcome to Tutorialspoint!"
regex_list = [r"Hello", r"\bWelcome\b", r"\d+"]
if any(re.search(pattern, string) for pattern in regex_list):
   print("String matches at least one pattern")
Sortie

String matches at least one pattern

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer