Table des matières
1. Méthodes courantes
2. Caractères correspondants spéciaux
3. Méthode du module
re.match(pattern, string, flags=0)
search(pattern, string, flags=0)
sub(pattern, repl, string, count=0, flags=0)
subn(pattern, repl, string, count=0, flags=0)
split(pattern, string, maxsplit=0, flags=0)
findall(pattern, string, flags=0)
4. Objet Match
5. Objet Pattern
6. Modèle de correspondance
Maison développement back-end Tutoriel Python Une introduction détaillée à l'apprentissage du module re de la bibliothèque standard Python

Une introduction détaillée à l'apprentissage du module re de la bibliothèque standard Python

Mar 21, 2017 am 09:15 AM

Le module re fournit une série d'outils expression régulière (expression régulière) puissants qui vous permettent de vérifier rapidement si une chaîne donnée correspond à un modèle donné ( matchfonction ), ou inclure ce modèle (fonction de recherche). Les expressions régulières sont des modèles de chaînes écrits dans une syntaxe compacte (et mystérieuse).

1. Méthodes courantes

puissent être utilisé
Méthodes courantes Description
correspondance (pattern, string, flags=0) Si le début de la chaîne string correspond au modèle d'expression régulière, renvoie l'instance correspondante de MatchObject, sinon renvoie Aucun
search(pattern, string, flags=0) Analysez la chaîne, s'il y a une position qui correspond au modèle d'expression régulière, renvoie une instance de MatchObject, sinon ReturnNone
sub(pattern, repl, string, count=0, flags=0) correspondra à la partie du motif dans la chaîne , Remplacer par repl, jusqu'à compter fois
subn(pattern, repl, string, count=0, flags=0) est similaire à sub, renvoyé par subn Est une chaîne remplacée et un tableau d'heures correspondantes en un tuple
split(pattern, string, maxsplit=0, flags=0) Utilisez la chaîne correspondant au motif pour diviser la chaîne
findall(pattern, string, flags=0) Renvoyer la chaîne correspondant au modèle dans une chaîne sous forme de liste
compile( pattern , flags=0)compile(pattern, flags=0) Compile un modèle d'expression régulière dans un objet régulier afin que les méthodes de correspondance et de recherche de l'objet régulier
purge() Effacer l'expression régulière cache
escape( string ) Ajouter une barre oblique inverse à tous les caractères de la chaîne sauf les lettres et les chiffres

2. Caractères correspondants spéciaux

Syntaxe Description
. correspond à n'importe quel caractère à l'exception des sauts de ligne
^ l'en-tête correspond à
$ Correspondance de queue
* Correspond au personnage précédent 0 fois ou plus
Correspond au caractère précédent 1 ou plusieurs fois
? Faire correspondre le caractère précédent 0 ou une fois
{m,n} Correspond au caractère précédent m à n fois
Échapper à tout caractère spécial
[] est utilisé pour représenter un jeu de caractères combiné avec
| ou, cela signifie correspondant à n'importe lequel
à gauche et à droite

3. Méthode du module

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

  Correspond au début de la chaîne et renvoie une instance d'objet Match si le modèle correspond (Match objet décrit plus loin), sinon None est renvoyé. Flags est le mode de correspondance (décrit ci-dessous), qui est utilisé pour contrôler la méthode de correspondance des expressions régulières.

import re

a = &#39;abcdefg&#39;print re.match(r&#39;abc&#39;, a)  # 匹配成功print re.match(r&#39;abc&#39;, a).group()print re.match(r&#39;cde&#39;, a)  # 匹配失败>>><_sre.SRE_Match object at 0x0000000001D94578>
>>>abc
>>>None
Copier après la connexion

search(pattern, string, flags=0)

Utilisé pour rechercher des sous-chaînes dans la chaîne qui peuvent être mises en correspondance avec succès. Si elles sont trouvées, renvoient une instance d'objet Match, sinon renvoient None. .

import re

a = &#39;abcdefg&#39;print re.search(r&#39;bc&#39;, a)print re.search(r&#39;bc&#39;, a).group()print re.search(r&#39;123&#39;, a)

>>><_sre.SRE_Match object at 0x0000000001D94578>
>>>bc
>>>None
Copier après la connexion

sub(pattern, repl, string, count=0, flags=0)

Remplacer, remplacez la partie de la chaîne qui correspond au motif par repl, jusqu'à compter fois (Le les correspondances restantes ne seront pas traitées), puis la chaîne remplacée est renvoyée.

import re

a = &#39;a1b2c3&#39;print re.sub(r&#39;\d+&#39;, &#39;0&#39;, a)  # 将数字替换成&#39;0&#39;print re.sub(r&#39;\s+&#39;, &#39;0&#39;, a)  # 将空白字符替换成&#39;0&#39;>>>a0b0c0
>>>a1b2c3
Copier après la connexion

subn(pattern, repl, string, count=0, flags=0)

C'est la même chose que la fonction sub(), sauf qu'elle renvoie un tuple contenant de nouveaux caractères Chaîne et le nombre de correspondances

import re

a = &#39;a1b2c3&#39;print re.subn(r&#39;\d+&#39;, &#39;0&#39;, a)  # 将数字替换成&#39;0&#39;>>>(&#39;a0b0c0&#39;, 3)
Copier après la connexion

split(pattern, string, maxsplit=0, flags=0)

Version régulière de split(), divisée par sous-chaînes correspondant à la chaîne de motif, si des parenthèses sont utilisées dans le motif, alors la chaîne correspondant au motif sera également utilisée dans la liste des valeurs de retour, et maxsplit est la chaîne qui peut être divisée au maximum.

import re

a = &#39;a1b1c&#39;print re.split(r&#39;\d&#39;, a)print re.split(r&#39;(\d)&#39;, a)

>>>[&#39;a&#39;, &#39;b&#39;, &#39;c&#39;]
>>>[&#39;a&#39;, &#39;1&#39;, &#39;b&#39;, &#39;1&#39;, &#39;c&#39;]
Copier après la connexion

findall(pattern, string, flags=0)

Renvoie les sous-chaînes non superposées correspondant au motif dans la chaîne sous la forme d'une liste.

import re

a = &#39;a1b2c3d4&#39;print re.findall(&#39;\d&#39;, a)

>>>[&#39;1&#39;, &#39;2&#39;, &#39;3&#39;, &#39;4&#39;]
Copier après la connexion

4. Objet Match

Si re.match() et re.search() correspondent avec succès, ils renverront un objet Match, qui contient de nombreuses informations sur la correspondance. . Vous pouvez utiliser les propriétés ou méthodes fournies par Match pour obtenir ces informations. Par exemple :

>>>import re

>>>str = &#39;he has 2 books and 1 pen&#39;
>>>ob = re.search(&#39;(\d+)&#39;, str)

>>>print ob.string  # 匹配时使用的文本
he has 2 books and 1 pen

>>>print ob.re # 匹配时使用的Pattern对象
re.compile(r&#39;(\d+)&#39;)

>>>print ob.group()  # 获得一个或多个分组截获的字符串
2

>>>print ob.groups()  # 以元组形式返回全部分组截获的字符串
(&#39;2&#39;,)
Copier après la connexion

5. Objet Pattern

L'objet Pattern est renvoyé par re.compile(). Il a de nombreuses méthodes avec le même nom du module re, et le. les méthodes ont des fonctions similaires. Par exemple :

>>>import re
>>>pa = re.compile(&#39;(d\+)&#39;)

>>>print pa.split(&#39;he has 2 books and 1 pen&#39;)
[&#39;he has &#39;, &#39;2&#39;, &#39; books and &#39;, &#39;1&#39;, &#39; pen&#39;]

>>>print pa.findall(&#39;he has 2 books and 1 pen&#39;)
[&#39;2&#39;, &#39;1&#39;]

>>>print pa.sub(&#39;much&#39;, &#39;he has 2 books and 1 pen&#39;)
he has much books and much pen
Copier après la connexion

6. Modèle de correspondance

La valeur du modèle de correspondance peut utiliser l'opérateur bit à bit OR '|' pour indiquer qu'il prend effet en même temps. temps, tels que re.I | re.M, voici quelques indicateurs courants.

  • re.I(re.IGNORECASE) : Ignorer la casse

>>>pa = re.compile(&#39;abc&#39;, re.I)
>>>pa.findall(&#39;AbCdEfG&#39;)
>>>[&#39;AbC&#39;]
Copier après la connexion
  • re.L(re . LOCALE) : Localisation des jeux de caractères

Cette fonction permet de prendre en charge les environnements d'utilisation de jeux de caractères multilingues, tels que le caractère d'échappement w, dans un contexte anglais , cela signifie [a-zA-Z0-9], ce qui signifie tous les caractères et chiffres anglais. Si elles sont utilisées dans un environnement français, certaines chaînes françaises ne correspondront pas. Ajoutez cette option L et vous pourrez faire correspondre. Cependant, cela semble peu utile pour l’environnement chinois et ne peut toujours pas correspondre aux caractères chinois.

  • re.M(re.MULTILINE) : mode multi-ligne, modifier le comportement de '^' et '$'

>>>pa = re.compile(&#39;^\d+&#39;)
>>>pa.findall(&#39;123 456\n789 012\n345 678&#39;)
>>>[&#39;123&#39;]

>>>pa_m = re.compile(&#39;^\d+&#39;, re.M)
>>>pa_m.findall(&#39;123 456\n789 012\n345 678&#39;)
>>>[&#39;123&#39;, &#39;789&#39;, &#39;345&#39;]
Copier après la connexion
  • re.S(re.DOTALL) : cliquez sur n'importe quel motif correspondant pour modifier le comportement de '.'

  .号将匹配所有的字符。缺省情况下.匹配除换行符\n外的所有字符,使用这一选项以后,点号就能匹配包括换行符的任何字符。

  • re.U(re.UNICODE): 根据Unicode字符集解析字符

  • re.X(re.VERBOSE): 详细模式

# 这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释。以下两个正则表达式是等价的a = re.compile(r"""\d +  # the integral part
                   \.    # the decimal point
                   \d *  # some fractional digits""", re.X)
b = re.compile(r"\d+\.\d*")# 但是在这个模式下,如果你想匹配一个空格,你必须用&#39;/ &#39;的形式(&#39;/&#39;后面跟一个空格)
Copier après la connexion


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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment résoudre le problème des autorisations rencontré lors de la visualisation de la version Python dans le terminal Linux? Comment résoudre le problème des autorisations rencontré lors de la visualisation de la version Python dans le terminal Linux? Apr 01, 2025 pm 05:09 PM

Solution aux problèmes d'autorisation Lors de la visualisation de la version Python dans Linux Terminal Lorsque vous essayez d'afficher la version Python dans Linux Terminal, entrez Python ...

Comment copier efficacement la colonne entière d'une dataframe dans une autre dataframe avec différentes structures dans Python? Comment copier efficacement la colonne entière d'une dataframe dans une autre dataframe avec différentes structures dans Python? Apr 01, 2025 pm 11:15 PM

Lorsque vous utilisez la bibliothèque Pandas de Python, comment copier des colonnes entières entre deux frames de données avec différentes structures est un problème courant. Supposons que nous ayons deux dats ...

Comment enseigner les bases de la programmation novice en informatique dans le projet et les méthodes axées sur les problèmes dans les 10 heures? Comment enseigner les bases de la programmation novice en informatique dans le projet et les méthodes axées sur les problèmes dans les 10 heures? Apr 02, 2025 am 07:18 AM

Comment enseigner les bases de la programmation novice en informatique dans les 10 heures? Si vous n'avez que 10 heures pour enseigner à l'informatique novice des connaissances en programmation, que choisissez-vous d'enseigner ...

Comment éviter d'être détecté par le navigateur lors de l'utilisation de Fiddler partout pour la lecture de l'homme au milieu? Comment éviter d'être détecté par le navigateur lors de l'utilisation de Fiddler partout pour la lecture de l'homme au milieu? Apr 02, 2025 am 07:15 AM

Comment éviter d'être détecté lors de l'utilisation de FiddlereVerywhere pour les lectures d'homme dans le milieu lorsque vous utilisez FiddlereVerywhere ...

Que sont les expressions régulières? Que sont les expressions régulières? Mar 20, 2025 pm 06:25 PM

Les expressions régulières sont des outils puissants pour la correspondance des motifs et la manipulation du texte dans la programmation, améliorant l'efficacité du traitement de texte sur diverses applications.

Comment Uvicorn écoute-t-il en permanence les demandes HTTP sans servir_forever ()? Comment Uvicorn écoute-t-il en permanence les demandes HTTP sans servir_forever ()? Apr 01, 2025 pm 10:51 PM

Comment Uvicorn écoute-t-il en permanence les demandes HTTP? Uvicorn est un serveur Web léger basé sur ASGI. L'une de ses fonctions principales est d'écouter les demandes HTTP et de procéder ...

Quelles sont les bibliothèques Python populaires et leurs utilisations? Quelles sont les bibliothèques Python populaires et leurs utilisations? Mar 21, 2025 pm 06:46 PM

L'article traite des bibliothèques Python populaires comme Numpy, Pandas, Matplotlib, Scikit-Learn, Tensorflow, Django, Flask et Demandes, détaillant leurs utilisations dans le calcul scientifique, l'analyse des données, la visualisation, l'apprentissage automatique, le développement Web et H et H

Comment créer dynamiquement un objet via une chaîne et appeler ses méthodes dans Python? Comment créer dynamiquement un objet via une chaîne et appeler ses méthodes dans Python? Apr 01, 2025 pm 11:18 PM

Dans Python, comment créer dynamiquement un objet via une chaîne et appeler ses méthodes? Il s'agit d'une exigence de programmation courante, surtout si elle doit être configurée ou exécutée ...

See all articles