Maison >développement back-end >Tutoriel Python >Résumer et organiser les points de connaissance des expressions régulières Python

Résumer et organiser les points de connaissance des expressions régulières Python

WBOY
WBOYavant
2022-04-13 19:09:142023parcourir

Cet article vous apporte des connaissances pertinentes sur python, qui présente principalement des problèmes liés aux expressions régulières. Une expression régulière (Regular Expression) est une chaîne, qui peut représenter une information régulière. Jetons un coup d'œil ensemble, je. j'espère que cela sera utile à tout le monde.

Résumer et organiser les points de connaissance des expressions régulières Python

Apprentissage recommandé : Tutoriel vidéo Python

1.1 Expression régulière

L'expression régulière (expression régulière) est une chaîne, elle peut représenter une information régulière. Python est livré avec un module d'expression régulière, grâce auquel vous pouvez rechercher, extraire et remplacer une information régulière. Il est difficile de trouver une personne parmi dix mille personnes, mais il est facile de trouver une personne très « caractéristique » parmi dix mille personnes. Supposons qu'il y ait une personne à la peau verte et mesurant trois mètres. Même si cette personne fait partie de dix mille personnes, d'autres peuvent la trouver d'un seul coup d'œil. Ce processus de « recherche » est appelé « correspondance » dans les expressions régulières. Dans le développement de programmes, si vous souhaitez qu'un programme informatique trouve le contenu requis à partir d'un grand morceau de texte, vous pouvez utiliser des expressions régulières. Les étapes suivantes sont nécessaires pour utiliser les expressions régulières.
(1) Recherchez des modèles.
(2) Utilisez des symboles réguliers pour exprimer les règles.
(3) Extraire les informations.

1.2 Symboles de base des expressions régulières

1.2.1 Point " . "

Un point peut remplacer n'importe quel caractère à l'exception du caractère de nouvelle ligne, y compris mais sans s'y limiter les lettres anglaises, les chiffres, le chinois caractères, signes de ponctuation anglais et signes de ponctuation chinois.

1.2.2 Astérisque " * "

Un astérisque peut représenter une sous-expression devant lui ( caractères ordinaires , un autre ou plusieurs symboles d'expression régulière) 0 fois à l'infini De second ordre.

Résumer et organiser les points de connaissance des expressions régulières Python
Tous les éléments ci-dessus sont acceptables : (l'astérisque représente l'expression précédente)
Résumer et organiser les points de connaissance des expressions régulières Python

1.2.3 Point + astérisque ".*"

Le point représente tout caractère autre qu'un saut de ligne et l'astérisque indique la correspondance le caractère qui le précède 0 fois ou un certain nombre de fois. Donc ".*" signifie faire correspondre une chaîne de n'importe quelle longueur un certain nombre de fois.
Résumer et organiser les points de connaissance des expressions régulières Python
Tous les éléments ci-dessus sont acceptables :
Cela signifie que "n'importe quel nombre de caractères, à l'exception des sauts de ligne", apparaît entre "tel" et "ha".
Résumer et organiser les points de connaissance des expressions régulières Python

1.2.4 Point d'interrogation « ? »

Le point d'interrogation représente la sous-expression qui la précède 0 fois ou 1 fois. Notez que le point d'interrogation ici est un point d'interrogation anglais Résumer et organiser les points de connaissance des expressions régulières Python
Tous les éléments ci-dessus peuvent être utilisés : Résumer et organiser les points de connaissance des expressions régulières Python

1.2.5 Point+astérisque+point d'interrogation ".*?" (le plus couramment utilisé)

Utilisation après combinaison :
Résumer et organiser les points de connaissance des expressions régulières Python
Tous les éléments ci-dessus peuvent être utilisés :
Résumer et organiser les points de connaissance des expressions régulières Python
Remarque : La différence entre « .* » et « .* »
. *? Cela signifie faire correspondre la chaîne la plus courte pouvant répondre aux exigences.
Le résumé d’une phrase est le suivant.
① ".*": Mode gourmand, obtenez la chaîne la plus longue qui remplit les conditions.
② ".*? " : Mode non gourmand, obtenez la chaîne la plus courte qui remplit les conditions.

1.2.6 Parenthèses "()"

"extraire" une partie du contenu d'une chaîne
Il y a la chaîne suivante :
Résumer et organiser les points de connaissance des expressions régulières Python
On peut voir qu'il y a un deux-points anglais sur le côté gauche du mot de passe. ici, et un deux-points anglais sur le côté droit. Il y a un caractère chinois pour « vous ». Lors de la construction d'une expression régulière : .*? Lorsque vous, le résultat sera :
Résumer et organiser les points de connaissance des expressions régulières Python
Cependant, les deux points et le caractère chinois « vous » ne font pas partie du mot de passe. Si vous voulez uniquement « 12345abcde », vous devez utiliser des parenthèses :
Résumer et organiser les points de connaissance des expressions régulières Python
et obtenir :
. Résumer et organiser les points de connaissance des expressions régulières Python

1.2.7 Barre oblique inverse « »

Dans les expressions régulières, de nombreux symboles ont des significations particulières, telles que les points d'interrogation, les astérisques, les accolades, les crochets et les parenthèses. La barre oblique inverse doit être utilisée conjointement avec d'autres caractères pour transformer les symboles spéciaux en symboles ordinaires et les symboles ordinaires en symboles spéciaux.
Résumer et organiser les points de connaissance des expressions régulières Python

1.2.8 Le nombre « d »

« d » est utilisé dans les expressions régulières pour représenter un seul chiffre.
Si vous souhaitez extraire deux nombres, vous pouvez utiliser dd ; si vous souhaitez extraire 3 nombres, vous pouvez utiliser ddd. Mais que se passe-t-il si vous ne savez pas combien de chiffres comporte ce numéro ? Vous devez utiliser le signe * pour représenter un nombre arbitraire.

Résumer et organiser les points de connaissance des expressions régulières Python
Tous peuvent être représentés par l'expression régulière suivante :
Résumer et organiser les points de connaissance des expressions régulières Python

1.3 Utilisation d'expressions régulières

Le nom du module d'expression régulière de Python est "re", qui est la première lettre de l'abréviation "expression régulière". En Python, vous devez d'abord importer ce module avant de l'utiliser. L'instruction importée est :

import re

1.3.1 méthode findall

Le module d'expression régulière de Python contient une méthode findall, qui peut renvoyer toutes les chaînes qui répondent aux exigences sous la forme d'une list.
Le prototype de fonction de findall est :

re.findall(pattern,string,flags=0)

pattern représente une expression régulière, string représente la chaîne d'origine et flags représente des indicateurs de fonction spéciaux. Le résultat de findall est une liste contenant tous les résultats correspondants. Si aucun résultat ne correspond, une liste vide sera renvoyée.

Lorsque vous devez extraire certains contenus, utilisez des parenthèses pour placer le contenu afin de ne pas obtenir d'informations non pertinentes. Comment revenir s'il contient plusieurs "(.*? )" ? Comme le montre la figure 3-2, ce qui est renvoyé est toujours une liste, mais les éléments de la liste deviennent des tuples. Le premier élément du tuple est le numéro de compte et le deuxième élément est le mot de passe.
Résumer et organiser les points de connaissance des expressions régulières Python

Il y a un paramètre flags dans le prototype de la fonction. Ce paramètre peut être omis. Lorsqu'il n'est pas omis, il a certaines fonctions auxiliaires, comme ignorer la casse, ignorer les nouvelles lignes, etc.
Ici, nous prenons l'exemple de l'ignorance des nouvelles lignes pour illustrer. Pour ignorer les nouvelles lignes, vous devez utiliser l'indicateur "re.S". Résumer et organiser les points de connaissance des expressions régulières Python
Bien que le symbole « n » apparaisse dans les résultats correspondants, c'est mieux que de ne rien obtenir du tout. Les sauts de ligne dans le contenu peuvent être remplacés lors du nettoyage ultérieur des données.

Méthode de recherche 1.3.2

L'utilisation de search() est la même que celle de findall(), mais search() ne renverra que la première chaîne qui répond aux exigences. Une fois qu’il trouve quelque chose qui correspond aux exigences, il arrête de chercher. Il est particulièrement utile pour rechercher uniquement les premières données dans un texte très volumineux, ce qui peut grandement améliorer l'efficacité de fonctionnement du programme. Le prototype de fonction de

search() est : Résumer et organiser les points de connaissance des expressions régulières Python
Pour le résultat, si la correspondance est réussie, c'est un objet d'expression régulière ; si aucune donnée ne correspond, c'est Aucune.

Si vous avez besoin d'obtenir le résultat correspondant, vous devez utiliser la méthode .group() pour obtenir la valeur à l'intérieur.
Résumer et organiser les points de connaissance des expressions régulières Python
Ce n'est que lorsque le paramètre dans .group() est 1 que le résultat entre parenthèses dans l'expression régulière sera imprimé. Les paramètres de

.group() ne peuvent pas dépasser le nombre maximum de parenthèses dans l'expression régulière. Un paramètre de 1 signifie lire le contenu dans la première parenthèse, un paramètre de 2 signifie lire le contenu dans la deuxième parenthèse, et ainsi de suite.
(Notez que celle sur l'image n'est pas findall)
Résumer et organiser les points de connaissance des expressions régulières Python

Méthode de compilation 1.3.3

re.findall() est livrée avec la fonction re.compile(), il n'est donc pas nécessaire d'utiliser re.compile( ).

1.4 Compétences d'extraction d'expressions régulières

1.4.1 Saisissez d'abord les grands, puis les petits : extraction secondaire

Résumer et organiser les points de connaissance des expressions régulières Python

1.4.2 Il peut y avoir d'autres caractères à l'intérieur des parenthèses et à l'extérieur des parenthèses

Là peut être d'autres caractères entre parenthèses.
Voir l'image ci-dessous pour les impacts spécifiques.
Résumer et organiser les points de connaissance des expressions régulières Python
S'il y a d'autres caractères ordinaires entre parenthèses, alors ces caractères ordinaires apparaîtront dans les résultats obtenus.

Apprentissage recommandé : Tutoriel vidéo Python

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