


Une introduction détaillée à l'apprentissage du module re de la bibliothèque standard Python
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
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 | puissent être utilisé
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 |
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 = 'abcdefg'print re.match(r'abc', a) # 匹配成功print re.match(r'abc', a).group()print re.match(r'cde', a) # 匹配失败>>><_sre.SRE_Match object at 0x0000000001D94578> >>>abc >>>None
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 = 'abcdefg'print re.search(r'bc', a)print re.search(r'bc', a).group()print re.search(r'123', a) >>><_sre.SRE_Match object at 0x0000000001D94578> >>>bc >>>None
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 = 'a1b2c3'print re.sub(r'\d+', '0', a) # 将数字替换成'0'print re.sub(r'\s+', '0', a) # 将空白字符替换成'0'>>>a0b0c0 >>>a1b2c3
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 = 'a1b2c3'print re.subn(r'\d+', '0', a) # 将数字替换成'0'>>>('a0b0c0', 3)
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 = 'a1b1c'print re.split(r'\d', a)print re.split(r'(\d)', a) >>>['a', 'b', 'c'] >>>['a', '1', 'b', '1', 'c']
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 = 'a1b2c3d4'print re.findall('\d', a) >>>['1', '2', '3', '4']
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 = 'he has 2 books and 1 pen' >>>ob = re.search('(\d+)', str) >>>print ob.string # 匹配时使用的文本 he has 2 books and 1 pen >>>print ob.re # 匹配时使用的Pattern对象 re.compile(r'(\d+)') >>>print ob.group() # 获得一个或多个分组截获的字符串 2 >>>print ob.groups() # 以元组形式返回全部分组截获的字符串 ('2',)
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('(d\+)') >>>print pa.split('he has 2 books and 1 pen') ['he has ', '2', ' books and ', '1', ' pen'] >>>print pa.findall('he has 2 books and 1 pen') ['2', '1'] >>>print pa.sub('much', 'he has 2 books and 1 pen') he has much books and much pen
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('abc', re.I) >>>pa.findall('AbCdEfG') >>>['AbC']
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('^\d+') >>>pa.findall('123 456\n789 012\n345 678') >>>['123'] >>>pa_m = re.compile('^\d+', re.M) >>>pa_m.findall('123 456\n789 012\n345 678') >>>['123', '789', '345']
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*")# 但是在这个模式下,如果你想匹配一个空格,你必须用'/ '的形式('/'后面跟一个空格)
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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 ...

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 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é lors de l'utilisation de FiddlereVerywhere pour les lectures d'homme dans le milieu lorsque vous utilisez FiddlereVerywhere ...

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? 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 ...

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

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 ...
