Maybaygiare.org

Blog Network

RegEx Python : re.correspondance (), ré.recherche (), ré.findall() avec Exemple

Qu’est-ce que l’expression régulière en Python?

Une expression régulière (RE) dans un langage de programmation est une chaîne de texte spéciale utilisée pour décrire un motif de recherche. Il est extrêmement utile pour extraire des informations de texte telles que du code, des fichiers, des journaux, des feuilles de calcul ou même des documents.

Lors de l’utilisation de l’expression régulière Python, la première chose à reconnaître est que tout est essentiellement un caractère, et nous écrivons des motifs pour correspondre à une séquence spécifique de caractères également appelée chaîne. Les lettres Ascii ou latines sont celles qui se trouvent sur vos claviers et Unicode est utilisé pour faire correspondre le texte étranger. Il comprend des chiffres et de la ponctuation et tous les caractères spéciaux comme# #@!%, etc.

Dans ce tutoriel d’expression régulière Python, nous allons apprendre –

  • Syntaxe d’expression régulière
  • Exemple d’expression w + et ^
  • Exemple d’expression \s dans re.fonction de fractionnement
  • En utilisant des méthodes d’expression régulière
  • En utilisant re.match()
  • Trouver un motif dans le texte (re.recherche())
  • En utilisant re.trouver tout pour le texte
  • Drapeaux Python
  • Exemple de re.M ou Drapeaux multilignes

Par exemple, une expression régulière Python pourrait indiquer à un programme de rechercher du texte spécifique à partir de la chaîne, puis d’imprimer le résultat en conséquence. L’expression peut inclure

  • Correspondance de texte
  • Répétition
  • Ramification
  • Composition de motif, etc.

L’expression régulière ou l’expression régulière en Python est notée RE (RES, regex ou regex pattern) sont importées via le module re. Python prend en charge l’expression régulière via des bibliothèques. RegEx en Python prend en charge diverses choses comme les modificateurs, les identifiants et les caractères d’espace blanc.

Identificateurs Modificateurs Caractères d’espace blanc Échappement requis
\d= tout nombre (un chiffre) \d représente un chiffre.Ex: \d{1,5} il déclarera un chiffre entre 1,5 comme 424,444,545 etc. \n = nouvelle ligne . + * ? $ ^ () {} | \
\D = tout sauf un nombre (un non-chiffre) += correspond à 1 ou plus \s = espace
\s = espace (tabulation, espace, saut de ligne, etc.) ? = matches 0 or 1 \t =tab
\S= anything but a space * = 0 or more \e = escape
\w = letters ( Match alphanumeric character, including « _ ») $ match end of a string \r = carriage return
\W =anything but letters ( Matches a non-alphanumeric character excluding « _ ») ^ match start of a string \f= form feed
. = anything but letters (periods) | matches either or x/y —————–
\b = any character except for new line = range or « variance » —————-
\. {x} = cette quantité de code précédent —————–

Syntaxe d’expression régulière (RE)

import re
  • Module « re » inclus avec Python principalement utilisé pour la recherche et la manipulation de chaînes
  • Également fréquemment utilisé pour le « Scraping » de pages Web (extraire une grande quantité de données de sites Web)

Nous allons commencer le tutoriel d’expression par cet exercice simple en utilisant les expressions (w +) et (^).

Exemple d’expression w+ et ^

  • « ^ »: Cette expression correspond au début d’une chaîne
  • « w + »: Cette expression correspond au caractère alphanumérique de la chaîne

Nous verrons ici un exemple d’expression régulière Python de la façon dont nous pouvons utiliser les expressions w + et ^ dans notre code. Nous couvrons la fonction re.findall() en Python, plus tard dans ce tutoriel, mais pendant un moment, nous nous concentrons simplement sur l’expression \w + et \^.

Par exemple, pour notre chaîne « guru99, l’éducation est amusante » si nous exécutons le code avec w + et ^, cela donnera la sortie « guru99 ».

Tutoriel Regex Python: re.correspondance (), ré.recherche (), ré.findall(), Flags

import rexx = "guru99,education is fun"r1 = re.findall(r"^\w+",xx)print(r1)

Rappelez-vous, si vous supprimez le signe + du w +, la sortie changera et ne donnera que le premier caractère de la première lettre, c’est-à-dire,

Exemple d’expression \s dans re.fonction split

  • « s »: Cette expression est utilisée pour créer un espace dans la chaîne

Pour comprendre comment fonctionne cette expression régulière en Python, nous commençons par un exemple simple d’expression régulière Python d’une fonction split. Dans l’exemple, nous avons divisé chaque mot en utilisant le « re.fonction split » et en même temps, nous avons utilisé expression \s qui permet d’analyser chaque mot de la chaîne séparément.

Tutoriel Regex Python: re.correspondance (), ré.recherche (), ré.findall(), Flags

Lorsque vous exécutez ce code, il vous donnera la sortie.

Maintenant, voyons ce qui se passe si vous supprimez « \ » de s. Il n’y a pas d’alphabet « s » dans la sortie, c’est parce que nous avons supprimé « \ » de la chaîne, et il évalue « s » comme un caractère régulier et divise ainsi les mots partout où il trouve « s » dans la chaîne.

Tutoriel Regex Python: re.correspondance (), ré.recherche (), ré.findall(), Flags

De même, il existe des séries d’autres expressions régulières Python que vous pouvez utiliser de différentes manières en Python comme \d, \D,$, \., \b, etc.

Voici le code complet

import rexx = "guru99,education is fun"r1 = re.findall(r"^\w+", xx)print((re.split(r'\s','we are splitting the words')))print((re.split(r's','split the words')))

Ensuite, nous allons voir les types de méthodes utilisées avec l’expression régulière en Python.

Utilisation de méthodes d’expression régulière

Le paquet « re » fournit plusieurs méthodes pour effectuer des requêtes sur une chaîne d’entrée. Nous verrons les méthodes de re en Python :

  • re.c’est la même chose.recherche()
  • re.findall()

Remarque: Basé sur les expressions régulières, Python propose deux opérations primitives différentes. La méthode de correspondance recherche une correspondance uniquement au début de la chaîne tandis que la recherche recherche une correspondance n’importe où dans la chaîne.

re.correspondance()

re.la fonction match() de re en Python recherchera le modèle d’expression régulière et renverra la première occurrence. La méthode de correspondance d’expressions régulières Python ne vérifie une correspondance qu’au début de la chaîne. Ainsi, si une correspondance est trouvée dans la première ligne, elle renvoie l’objet de correspondance. Mais si une correspondance est trouvée dans une autre ligne, la fonction de correspondance RegEx Python renvoie null.

Par exemple, considérons le code suivant de Python re.fonction match(). L’expression « w + » et « \W » correspondront aux mots commençant par la lettre « g » et par la suite, tout ce qui n’est pas commencé par « g » n’est pas identifié. Pour vérifier la correspondance pour chaque élément de la liste ou de la chaîne, nous exécutons le forloop dans ce re Python.exemple de match().

Tutoriel Regex Python: re.correspondance (), ré.recherche (), ré.findall(), Drapeaux

re.search(): Recherche d’un motif dans le texte

re.la fonction search() recherchera le modèle d’expression régulière et renverra la première occurrence. Contrairement à Python re.match(), il vérifiera toutes les lignes de la chaîne d’entrée. Le Python re.la fonction search() renvoie un objet de correspondance lorsque le motif est trouvé et ”null » si le motif n’est pas trouvé

Pour utiliser la fonction search(), vous devez d’abord importer le module Python re, puis exécuter le code. Le Python re.la fonction search() prend le « motif » et le « texte » à analyser à partir de notre chaîne principale

Tutoriel d'expression régulière Python: re.correspondance (), ré.recherche (), ré.findall(), Flags

Par exemple ici, nous recherchons deux chaînes littérales « Test logiciel » « guru99 », dans une chaîne de texte « Le test logiciel est amusant ». Pour les « tests logiciels », nous avons trouvé la correspondance, ce qui renvoie la sortie de Python re.Exemple de recherche () comme « trouvé une correspondance », alors que pour le mot « guru99 » nous n’avons pas pu trouver dans la chaîne, il renvoie donc la sortie comme « Pas de correspondance ».

re.le module findall()

findall() est utilisé pour rechercher « toutes” les occurrences qui correspondent à un modèle donné. En revanche, le module search() ne renverra que la première occurrence qui correspond au modèle spécifié. findall() parcourra toutes les lignes du fichier et renverra toutes les correspondances de motif qui ne se chevauchent pas en une seule étape.

Par exemple, nous avons ici une liste d’adresses e-mail, et nous voulons que toutes les adresses e-mail soient extraites de la liste, nous utilisons la méthode re.findall() en Python. Il trouvera toutes les adresses e-mail de la liste.

Tutoriel Regex Python: re.correspondance (), ré.recherche (), ré.findall(), Flags

Voici le code complet par Exemple de re.findall()

import relist = for element in list: z = re.match("(g\w+)\W(g\w+)", element)if z: print((z.groups())) patterns = text = 'software testing is fun?'for pattern in patterns: print('Looking for "%s" in "%s" ->' % (pattern, text), end=' ') if re.search(pattern, text): print('found a match!')else: print('no match')abc = This email address is being protected from spambots. You need JavaScript enabled to view it., This email address is being protected from spambots. You need JavaScript enabled to view it., This email address is being protected from spambots. You need JavaScript enabled to view it.'emails = re.findall(r'+@+', abc)for email in emails: print(email)

Drapeaux Python

De nombreuses méthodes et fonctions d’expression régulière Python prennent un argument facultatif appelé Drapeaux. Ces indicateurs peuvent modifier la signification du modèle d’expression régulière Python donné. Pour les comprendre, nous verrons un ou deux exemples de ces drapeaux.

Various flags used in Python includes

Syntax for Regex Flags What does this flag do
Make begin/end consider each line
It ignores case
Make
Make { \w,\W,\b,\B} follows Unicode rules
Make {\w,\W,\b,\B} follow locale
Allow comment in Regex

Example of re.M ou Drapeaux multilignes

En multiligne, le caractère du motif correspond au premier caractère de la chaîne et au début de chaque ligne (immédiatement après chaque nouvelle ligne). Alors que l’expression petit « w » est utilisée pour marquer l’espace avec des caractères. Lorsque vous exécutez le code, la première variable « k1 » n’imprime que le caractère « g » pour le mot guru99, tandis que lorsque vous ajoutez un drapeau multiligne, elle récupère les premiers caractères de tous les éléments de la chaîne.

Tutoriel Regex Python: re.correspondance (), ré.recherche (), ré.findall(), Flags

Voici le code

import rexx = """guru99 careerguru99selenium"""k1 = re.findall(r"^\w", xx)k2 = re.findall(r"^\w", xx, re.MULTILINE)print(k1)print(k2)
  • Nous avons déclaré la variable xx pour la chaîne « guru99…. carrièresuru99….selenium « 
  • Exécutez le code sans utiliser d’indicateurs multilignes, il donne la sortie uniquement ‘g’ à partir des lignes
  • Exécutez le code avec l’indicateur « multiligne », lorsque vous imprimez ‘k2’, il donne la sortie en tant que ‘g’, ‘c’ et ‘s’
  • Donc, la différence que nous pouvons voir après et avant d’ajouter des multilignes dans l’exemple ci-dessus.

De même, vous pouvez également utiliser d’autres drapeaux Python comme re.U (Unicode), ré.L (Suivre les paramètres régionaux), ré.X (Autoriser le commentaire), etc.

Exemple Python 2

Les codes ci-dessus sont des exemples Python 3, Si vous souhaitez exécuter en Python 2, veuillez envisager le code suivant.

# Example of w+ and ^ Expressionimport rexx = "guru99,education is fun"r1 = re.findall(r"^\w+",xx)print r1# Example of \s expression in re.split functionimport rexx = "guru99,education is fun"r1 = re.findall(r"^\w+", xx)print (re.split(r'\s','we are splitting the words'))print (re.split(r's','split the words'))# Using re.findall for textimport relist = for element in list: z = re.match("(g\w+)\W(g\w+)", element)if z: print(z.groups()) patterns = text = 'software testing is fun?'for pattern in patterns: print 'Looking for "%s" in "%s" ->' % (pattern, text), if re.search(pattern, text): print 'found a match!'else: print 'no match'abc = This email address is being protected from spambots. You need JavaScript enabled to view it., This email address is being protected from spambots. You need JavaScript enabled to view it., This email address is being protected from spambots. You need JavaScript enabled to view it.'emails = re.findall(r'+@+', abc)for email in emails: print email# Example of re.M or Multiline Flagsimport rexx = """guru99 careerguru99selenium"""k1 = re.findall(r"^\w", xx)k2 = re.findall(r"^\w", xx, re.MULTILINE)print k1print k2

Résumé

Une expression régulière dans un langage de programmation est une chaîne de texte spéciale utilisée pour décrire un motif de recherche. Il comprend des chiffres et de la ponctuation et tous les caractères spéciaux comme# #@!%, etc. L’expression peut inclure une correspondance littérale

  • de texte
  • Répétition
  • Ramification
  • Composition de motif, etc.

En Python, une expression régulière est notée RE (REs, regex ou regex pattern) sont incorporés via le module Python re.

  • Module « re » inclus avec Python principalement utilisé pour la recherche et la manipulation de chaînes
  • Également fréquemment utilisé pour le « grattage » de pages Web (extraire une grande quantité de données de sites Web)
  • Les méthodes d’expression régulière incluent re.correspondance (), ré.recherche()&re.findall()
  • Les autres méthodes de remplacement de RegEx Python sont sub() et subn() qui sont utilisées pour remplacer les chaînes correspondantes dans re
  • Drapeaux Python De nombreuses méthodes Regex Python et fonctions Regex prennent un argument facultatif appelé Flags
  • Ces drapeaux peuvent modifier la signification du motif Regex donné
  • Divers drapeaux Python utilisés dans les méthodes Regex sont re.M, ré.Moi, ré.S, etc.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.