[Python] Eine Funktion, die die gesamte Zeichenfolge mit einem regulären Ausdruck durchsucht und alle übereinstimmenden Zeichenfolgen abruft.

Wenn Sie nur die Zeichenfolge erhalten möchten, suchen Sie einfach erneut.

python


target_text = "Bisher wurden sieben Arten von "Coronaviren" gefunden, die Menschen infizieren, und eine davon ist das sogenannte "neue Coronavirus (SARS)", das seit Dezember letzten Jahres ein Problem darstellt.-CoV2) ". Von diesen machen vier Arten von Viren 10 bis 15% (35% während der Epidemie) der Erkältungen aus und die meisten sind mild. Die verbleibenden zwei Arten von Viren sind "schweres akutes respiratorisches Syndrom (SARS)", das 2002 auftrat, und "nahöstliches respiratorisches Syndrom (MERS)", das seit 2012 aufgetreten ist. Coronavirus infiziert alle Tiere, aber selten andere Tiere verschiedener Arten. Es ist auch bekannt, dass die Alkoholdesinfektion (70%) die Infektiosität verliert."
keyword = "([0-9]+)"

results = re.findall(keyword, target_text)

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

Es gibt jedoch keine Funktion, die verwendet werden kann, wenn Sie alle Übereinstimmungsobjekte abrufen möchten, die mit re.search () abgerufen werden können. Schreiben Sie daher eine Funktion, die rekursiv die gesamte Zeichenfolge durchsucht.

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 = "Bisher wurden sieben Arten von "Coronaviren" gefunden, die Menschen infizieren, und eine davon ist das sogenannte "neue Coronavirus (SARS)", das seit Dezember letzten Jahres ein Problem darstellt.-CoV2) ". Von diesen machen vier Arten von Viren 10 bis 15% (35% während der Epidemie) der Erkältungen aus und die meisten sind mild. Die verbleibenden zwei Arten von Viren sind "schweres akutes respiratorisches Syndrom (SARS)", das 2002 auftrat, und "nahöstliches respiratorisches Syndrom (MERS)", das seit 2012 aufgetreten ist. Coronavirus infiziert alle Tiere, aber selten andere Tiere verschiedener Arten. Es ist auch bekannt, dass die Alkoholdesinfektion (70%) die Infektiosität verliert."
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

Nachtrag

--Ich habe re.findall () in den Kommentaren hinzugefügt / bearbeitet. Vielen Dank.

Recommended Posts

[Python] Eine Funktion, die die gesamte Zeichenfolge mit einem regulären Ausdruck durchsucht und alle übereinstimmenden Zeichenfolgen abruft.
Holen Sie sich die passende Zeichenfolge in den regulären Ausdruck und verwenden Sie sie beim Ersetzen unter Python3 erneut
Die eval () -Funktion, die eine Zeichenfolge als Ausdruck in Python berechnet
Kombinieren Sie sich wiederholende Zeichenfolgen mit regulären Python-Ausdrücken zu einer.
Bestimmen Sie, ob die Zeichenfolge Zeit mit einem regulären Python-Ausdruck ist
String-Ersetzung durch regulären Python-Ausdruck
Pythons regulärer Ausdruck, str und unicode sind nüchtern
[Einführung in Python] So schreiben Sie eine Zeichenfolge mit der Formatierungsfunktion
[Python] Ich habe eine Funktion erstellt, die auch reguläre Ausdrücke verwenden kann, die Zeichenfolgen auf einmal ersetzen.
Archivieren und komprimieren Sie das gesamte Verzeichnis mit Python
Ändern Sie die zu ersetzende Zeichenfolge entsprechend der übereinstimmenden Zeichenfolge, indem Sie sie durch den regulären Python-Ausdruck ersetzen
#Eine Funktion, die den Zeichencode einer Zeichenfolge zurückgibt
[Python] Lassen Sie nur Elemente im Array, die mit einer bestimmten Zeichenfolge beginnen
Ein Memo, dass ich den Datenspeicher mit Python berührt habe
Überprüft, ob für alle Dateien im Verzeichnis Python eine bestimmte Zeichenfolge vorhanden ist, und gibt die Zielzeile aus
[C / C ++] Übergeben Sie den in C / C ++ berechneten Wert an eine Python-Funktion, um den Prozess auszuführen, und verwenden Sie diesen Wert in C / C ++.
Ich habe auch versucht, die Funktionsmonade und die Zustandsmonade mit dem Generator in Python nachzuahmen
Verknüpfen Sie Python Enum mit einer Funktion, um es aufrufbar zu machen
Manipulation regulärer Ausdrücke durch Python
Verstehen Sie die Wahrscheinlichkeiten und Statistiken, die für das Fortschrittsmanagement mit einem Python-Programm verwendet werden können
[Python 3.8 ~] Wie man rekursive Funktionen mit Lambda-Ausdrücken intelligent definiert
Eine Funktion, die die Verarbeitungszeit einer Methode in Python misst
Die Geschichte, ein Modul zu erstellen, das E-Mails mit Python überspringt
Ein Skript, das Tweets mit Python abruft, sie in einer externen Datei speichert und morphologische Analysen durchführt.
[Python] Machen Sie die Funktion zu einer Lambda-Funktion
Füllen Sie die Zeichenfolge mit Nullen in Python und zählen Sie bestimmte Zeichen aus der Zeichenfolge
Extrahieren Sie mit Python Zeilen, die den Bedingungen entsprechen, aus einer Textdatei
Überprüfung und Extraktion der URL-Übereinstimmung mit dem regulären Python-Ausdruck Regex Complete-Version
Lösen mit Ruby, Perl, Java und Python AtCoder ABC 047 C Regulärer Ausdruck
[Python] Wann, wo, wer und welches Spiel mit regulären Ausdrücken
[Python] Hinweis: Selbst erstellte Funktion zum Ermitteln des Bereichs der Normalverteilung
[Python] Erstellen eines Tools, mit dem Python-Dateien mit tkinter & über den Teil, der abgefangen wurde, aufgelistet, ausgewählt und ausgeführt werden können
[Python] Eine Funktion, die die Breite ausrichtet, indem ein Leerzeichen in Text eingefügt wird, das eine Mischung aus voller und halber Breite ist
Erstellen Sie mit Class einen Python-Funktionsdekorator
[Python] Ein Programm, das Treppen mit # erstellt
Durchsuche das Labyrinth mit dem Python A * -Algorithmus
(Python) Hinweise zum Lesen von HTML und zur Verwendung regulärer Ausdrücke
Eine typisierte Welt, die mit Python beginnt
[Python] Ein Programm, das die Partitur rundet
Python-Skript, das SQL-Dateien liest, BigQuery ausführt und CSV speichert
Erstellen wir ein einfaches Empfangssystem mit dem serverlosen Python-Framework Chalice und Twilio
Rund um die Authentifizierung von PyDrive2, einem Paket zum Betreiben von Google Drive mit Python
Lösen Sie das asymmetrische Python-Problem für reisende Verkäufer mit der Branch-and-Bound-Methode
[Python] Ein Programm, das die minimalen und maximalen Werte ohne Verwendung von Methoden findet
[Python] Ein Programm, das die Anzahl der Aktualisierungen der höchsten und niedrigsten Datensätze berechnet
[Python] Ich habe versucht, den Typnamen als Zeichenfolge aus der Typfunktion abzurufen
Holen Sie sich mit Python den Aktienkurs eines japanischen Unternehmens und erstellen Sie eine Grafik
Python-Skript, das alle UTF-8-Dateien unter dem Ordner mit Stückliste ohne Stückliste erstellt