Das Folgende ist ein Beispiel für gieriges Matching und mehrzeiliges Matching in Python. Es hat einen guten Referenzwert und ich hoffe, es wird für alle hilfreich sein. Lasst uns gemeinsam einen Blick darauf werfen
1 Non-Greedy-Flagge
>>> re.findall(r"a(\d+?)", "a23b") ['2'] >>> re.findall(r"a(\d+)", "a23b") ['23']
Bezahlen Achtung beim Vergleich In diesem Fall:
>>> re.findall(r"a(\d+)b", "a23b") ['23'] >>> re.findall(r"a(\d+?)b", "a23b") ['23']
2 Wenn Sie einen mehrzeiligen Abgleich wünschen, fügen Sie re.S und re hinzu .M-Flags
re.S: Stimmt mit Zeilenumbruchzeichen überein, Standard: Stimmt nicht mit Zeilenumbruchzeichen überein
>>> re.findall(r"a(\d+)b.+a(\d+)b", "a23b\na34b") [] >>> re.findall(r"a(\d+)b.+a(\d+)b", "a23b\na34b", re.S) [('23', '34')] >>>
re.M: Das Flag ^$ stimmt mit jeder Zeile überein. Standardmäßig stimmen ^ und $ nur mit der ersten Zeile überein
>>> re.findall(r"^a(\d+)b", "a23b\na34b") ['23'] >>> re.findall(r"^a(\d+)b", "a23b\na34b", re.M) ['23', '34']
Allerdings , wenn kein ^-Logo vorhanden ist,
>>> re.findall(r"a(\d+)b", "a23b\na23b") ['23', '23']
Verwandte Empfehlungen:
Schreiben Sie einen einfachen Webcrawler Python zum Aufnehmen von Videos
Das obige ist der detaillierte Inhalt vonPython-Greed-Matching und Multi-Line-Matching. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!