[Python] Une fonction qui recherche la chaîne de caractères entière avec une expression régulière et obtient toutes les chaînes de caractères correspondantes.

Si vous voulez juste obtenir la chaîne, il suffit de re.findall.

python


target_text = "Jusqu'à présent, sept types de «coronavirus» qui infectent les humains ont été trouvés, et l'un d'entre eux est le soi-disant «nouveau coronavirus (SRAS)» qui pose problème depuis décembre de l'année dernière.-CoV2) ". Parmi ceux-ci, quatre types de virus représentent 10 à 15% des causes du rhume (35% pendant l'épidémie), et la plupart sont bénins. Les deux types de virus restants sont le «syndrome respiratoire aigu sévère (SRAS)» survenu en 2002 et le «syndrome respiratoire du Moyen-Orient (MERS)» survenu depuis 2012. Le coronavirus infecte tous les animaux, mais infecte rarement d'autres animaux d'espèces différentes. On sait également que la désinfection à l'alcool (70%) perd son pouvoir infectieux."
keyword = "([0-9]+)"

results = re.findall(keyword, target_text)

# ['12', '2', '10', '15', '35', '2002', '2012', '70']

Cependant, aucune fonction ne peut être utilisée lorsque vous souhaitez obtenir tous les objets de correspondance qui peuvent être obtenus par re.search (). Par conséquent, écrivez une fonction qui recherche de manière récursive toute la chaîne de caractères.

python


import re

def search_all(regrex, target, search_start_index=0, matches=None):

  if matches == None:
    matches = []

  match = re.search(regrex, target[search_start_index:])

  if match == None:
    return matches
  
  matches.append(match)
  
  return search_all(regrex, target, search_start_index + match.end() + 1, matches)

python


target_text = "Jusqu'à présent, sept types de «coronavirus» qui infectent les humains ont été trouvés, et l'un d'entre eux est le soi-disant «nouveau coronavirus (SRAS)» qui pose problème depuis décembre de l'année dernière.-CoV2) ". Parmi ceux-ci, quatre types de virus représentent 10 à 15% des causes du rhume (35% pendant l'épidémie), et la plupart sont bénins. Les deux types de virus restants sont le «syndrome respiratoire aigu sévère (SRAS)» survenu en 2002 et le «syndrome respiratoire du Moyen-Orient (MERS)» survenu depuis 2012. Le coronavirus infecte tous les animaux, mais infecte rarement d'autres animaux d'espèces différentes. On sait également que la désinfection à l'alcool (70%) perd son pouvoir infectieux."
keyword = "([0-9]+)"

search_result_groups = search_all(keyword, target_text)

for item in search_result_groups:
  print(item.group())

# 12
# 2
# 10
# 15
# 35
# 2002
# 2012
# 70

Postscript

Recommended Posts

[Python] Une fonction qui recherche la chaîne de caractères entière avec une expression régulière et obtient toutes les chaînes de caractères correspondantes.
Récupérez la chaîne correspondante dans l'expression régulière et réutilisez-la lors du remplacement sur Python3
Fonction Eval () qui calcule une chaîne de caractères comme expression en python
Combinez des chaînes répétitives en une seule avec des expressions régulières Python.
Déterminer si la chaîne est l'heure avec une expression régulière python
Remplacement de chaîne par une expression régulière Python
l'expression régulière de python, str et unicode sont sobres et addictives
[Introduction à Python] Comment écrire une chaîne de caractères avec la fonction format
[Python] J'ai créé une fonction qui peut également utiliser des expressions régulières qui remplacent toutes les chaînes de caractères à la fois.
Archivez et compressez tout le répertoire avec python
Modifiez la chaîne de caractères à remplacer en fonction de la chaîne de caractères correspondante en la remplaçant par l'expression régulière Python
#Une fonction qui renvoie le code de caractère d'une chaîne de caractères
[Python] Ne laissez que les éléments commençant par une chaîne de caractères spécifique dans le tableau
Un mémo que j'ai touché au magasin de données avec python
Vérifie s'il existe une chaîne de caractères spécifique pour tous les fichiers sous le répertoire Python et renvoie la ligne cible
[C / C ++] Passez la valeur calculée en C / C ++ à une fonction python pour exécuter le processus et utilisez cette valeur en C / C ++.
J'ai aussi essayé d'imiter la fonction monade et la monade d'état avec le générateur en Python
Associez Python Enum à une fonction pour la rendre appelable
Manipulation d'expressions régulières par Python
Comprendre les probabilités et les statistiques qui peuvent être utilisées pour la gestion des progrès avec un programme python
[Python 3.8 ~] Comment définir intelligemment des fonctions récursives avec des expressions lambda
Une fonction qui mesure le temps de traitement d'une méthode en python
L'histoire de la création d'un module qui ignore le courrier avec python
Un script qui récupère les tweets avec Python, les enregistre dans un fichier externe et effectue une analyse morphologique.
[Python] Faire de la fonction une fonction lambda
Remplissez la chaîne avec des zéros en python et comptez certains caractères de la chaîne
Extraire les lignes qui correspondent aux conditions d'un fichier texte 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] Quand, où, qui et quel jeu en utilisant des expressions régulières
[Python] Note: Fonction auto-conçue pour trouver la zone de distribution normale
[Python] Création d'un outil qui peut lister, sélectionner et exécuter des fichiers python avec tkinter et à propos de la partie qui a été interceptée
[Python] Une fonction qui aligne la largeur en insérant un espace dans le texte qui est un mélange de pleine largeur et demi-largeur.
Créer un décorateur de fonction Python avec Class
[Python] Un programme qui crée des escaliers avec #
Rechercher le labyrinthe avec l'algorithme python A *
(Python) Remarques sur la lecture de HTML et l'utilisation d'expressions régulières
Un monde typé qui commence par Python
[Python] Un programme qui arrondit le score
Script Python qui lit les fichiers SQL, exécute BigQuery et enregistre le csv
Créons un système de réception simple avec le framework sans serveur Python Chalice et Twilio
Autour de l'authentification de PyDrive2, un package pour faire fonctionner Google Drive avec Python
Résolvez le problème du voyageur de commerce asymétrique Python avec la méthode de branche et de liaison
[Python] Un programme qui trouve les valeurs minimales et maximales sans utiliser de méthodes
[Python] Un programme qui calcule le nombre de mises à jour des enregistrements les plus élevés et les plus faibles
[Python] J'ai essayé d'obtenir le nom du type sous forme de chaîne de caractères à partir de la fonction type
Obtenez le cours de l'action d'une entreprise japonaise avec Python et faites un graphique
Script Python qui crée tous les fichiers UTF-8 sous le dossier avec BOM sans BOM