Manipulation d'expressions régulières par Python

introduction

J'oublie souvent l'opération lorsque je veux gérer des expressions régulières en Python, alors notez ce que vous recherchez souvent. Je l'ajouterai lorsque le nombre d'éléments fréquemment recherchés augmentera. Si vous souhaitez voir les informations complètes, accédez à Documents officiels. N'oubliez pas d'importer re. Pour référence, j'ai laissé une note sur la grammaire des expressions régulières à ici.

Aperçu

Un résumé des fonctions introduites. Ici, pattern représente un objet d'expression régulière arbitraire et match représente un objet de correspondance arbitraire.

une fonction Contenu
re.compile(r"Expressions régulières") Expressions régulièresオブジェクトの生成
pattern.search(Chaîne) Chaîne内でpatternに一致した最初のマッチオブジェクト
pattern.finditer(Chaîne) Chaîne内でpatternに一致した全てのマッチオブジェクトのイテレータ
match.start( ) Index de départ dans la chaîne de résultat de la recherche
match.end( ) Index de fin dans la chaîne de résultat de la recherche
match[0] Chaîne de résultats de recherche

Rechercher une chaîne de caractères (1)

Par exemple, lorsque vous voulez savoir si la chaîne «Je suis un débutant Python A» contient des «lettres majuscules de l'alphabet».

search_exam_1.py


import re
string = "Je suis Python débutant A" #Définition de la chaîne
pattern = re.compile(r"[A-Z]") #Définition du modèle d'expression régulière
result = pattern.search(string) #Chercher

print(result)
print(result.start())
print(result.end())
<re.Match object; span=(2, 3), match='P'>
2
3

Lors de l'utilisation d'une expression régulière, il est nécessaire de la traiter pour qu'elle soit reconnue comme une expression régulière. Le processus est re.compile (). Si vous utilisez re.search (r" [A-Z] ", string) pour assembler les 3ème et 4ème lignes, un objet d'expression régulière sera créé chaque fois qu'il y aura plusieurs textes. De plus, s'il y a un \ (symbole circulaire) dans l'expression régulière, il est nécessaire d'entourer la chaîne de caractères avec r" " pour qu'elle soit reconnue correctement. Ensuite, Python reconnaîtra que la chaîne à l'intérieur est brute. Pour plus de détails, reportez-vous au début du Document officiel.

L'objet renvoyé à "result" est appelé un objet de correspondance et contient des informations sur le premier résultat dans la chaîne de recherche. Il est pratique de pouvoir obtenir les index de début et de fin avec les méthodes start () et ʻend () `, respectivement.

Rechercher des chaînes de caractères (multiples)

Lorsque vous voulez obtenir ** tout ** de «l'alphabet supérieur» contenu dans la chaîne «Je suis un débutant Python A».

search_exam_2.py


import re
string = "Je suis Python débutant A" #Définition de la chaîne
pattern = re.compile("[A-Z]") #Définition du modèle d'expression régulière
results = pattern.finditer(string) #Rechercher des chaînes

for result in results: #Itérateur des résultats de recherche(results)En conséquence
    print(result[0]) #Faire correspondre l'élément d'objet
    print(result.start(), result.end())
P
2 3
A
11 12

Si vous recherchez une chaîne de caractères avec finditer, l'itérateur de l'objet de correspondance sera renvoyé, alors développez-le un par un avec l'instruction for. De multiples recherches sont réalisées de cette manière. Qu'est-ce que le résultat [0]? L'opération d'accès au groupe 0 dans l'objet de correspondance. Si vous recherchez plusieurs chaînes de caractères, il y aura plusieurs groupes dans l'objet de correspondance.

Résumé

Ici, pattern représente un objet d'expression régulière arbitraire et match représente un objet de correspondance arbitraire.

une fonction Contenu
re.compile(r"Expressions régulières") Expressions régulièresオブジェクトの生成
pattern.search(Chaîne) Chaîne内でpatternに一致した最初のマッチオブジェクト
pattern.finditer(Chaîne) Chaîne内でpatternに一致した全てのマッチオブジェクトのイテレータ
match.start( ) Index de départ dans la chaîne de résultat de la recherche
match.end( ) Index de fin dans la chaîne de résultat de la recherche
match[0] Chaîne de résultats de recherche

Pour l'instant, les éléments associés à la recherche et à la recherche sont répertoriés. Je l'ajouterai à nouveau à l'avenir.

Recommended Posts

Manipulation d'expressions régulières par Python
Remplacement de chaîne par une expression régulière Python
Expression régulière en pymongo
Expression régulière en Python
Notes sur l'expression régulière de la théorie Python
Combinez des chaînes répétitives en une seule avec des expressions régulières Python.
Décomposer le nom d'hôte avec co.jp avec une expression régulière
Gestion des expressions régulières par PHP / Python
FizzBuzz en Python3
Grattage avec Python
Manipulation de chaînes de syntaxe Python
Statistiques avec python
Grattage avec Python
Expression régulière gourmande
Python avec Go
Twilio avec Python
Jouez avec 2016-Python
Testé avec Python
(Python) Remarques sur la lecture de HTML et l'utilisation d'expressions régulières
[Python] Expressions régulières Expressions régulières
Remplacer non-ASCII par des expressions régulières en Python
avec syntaxe (Python)
Bingo avec python
Faisons la manipulation des données MySQL avec Python
Python: analyse morphologique simplifiée avec des expressions régulières
Manipulation de liste Python
Expression régulière re
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
Vérification et extraction de correspondance d'URL avec l'expression régulière Python Regex Version complète
Résolution avec Ruby, Perl, Java et Python AtCoder ABC 047 C Expression régulière
[Python] Débarrassez-vous de la datation avec des expressions régulières
Nom de groupe symbolique d'expression régulière en Python / Ruby
[Python] Expression (1,2) ne fait pas de taple avec des parenthèses
Communication série avec Python
Zip, décompressez avec python
Django 1.11 a démarré avec Python3.6
Jugement des nombres premiers avec Python
Python avec eclipse + PyDev.
Communication de socket avec Python
Analyse de données avec python 2
Grattage en Python (préparation)
Essayez de gratter avec Python.
Expression régulière dans regex.h
Apprendre Python avec ChemTHEATER 03
Recherche séquentielle avec Python
"Orienté objet" appris avec python
Exécutez Python avec VBA
Manipuler yaml avec python
Résolvez AtCoder 167 avec python
Communication série avec python
[Python] Utiliser JSON avec Python
Manipulation de caractères Python Node.js
Apprendre Python avec ChemTHEATER 05-1
Apprenez Python avec ChemTHEATER
1.1 Premiers pas avec Python
Binarisation avec OpenCV / Python
3. 3. Programmation IA avec Python