In diesem Artikel werden hauptsächlich die nicht gierigen und mehrzeiligen Matching-Funktionen regulärer Python-Ausdrücke vorgestellt. Er analysiert die Implementierungsmethoden und zugehörigen Vorsichtsmaßnahmen der nicht gierigen und mehrzeiligen Matching-Funktionen regulärer Python-Ausdrücke . Freunde, die es brauchen, können
Die Beispiele in diesem Artikel beschreiben die nicht gierige, mehrzeilige Matching-Funktion von regulären Python-Ausdrücken. Teilen Sie es wie folgt mit allen als Referenz:
Einige regelmäßige Tipps:
1 Non-Greedy-Flagge
>>> re.findall(r"a(\d+?)","a23b") # 非贪婪模式 ['2'] >>> re.findall(r"a(\d+)","a23b") ['23']
Achten Sie darauf, diese Situation zu vergleichen:
>>> re.findall(r"a(\d+)b","a23b") ['23'] >>> re.findall(r"a(\d+?)b","a23b") #如果前后均有限定条件,则非匹配模式失效 ['23']
2 Wenn Sie eine mehrzeilige Übereinstimmung wünschen, fügen Sie re.S und re hinzu .M Flags
re.S: . stimmt mit Zeilenumbrüchen überein, Standard .comma stimmt nicht mit Zeilenumbrüchen ü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, das Standardmerkmal ^ stimmt nur mit der ersten Zeile überein, die dem regulären Muster entspricht; das Standardmerkmal $ stimmt nur mit der letzten Zeile überein, die dem regulären Muster < entspricht 🎜>
>>> re.findall(r"^a(\d+)b","a23b\na34b") ['23'] >>> re.findall(r"^a(\d+)b","a23b\na34b",re.M) ['23','34']
>>> re.findall(r"a(\d+)b","a23b\na34b") ['23','43']
Hinweis:
Python3.4 In ist print eine Funktion und erfordert Klammern
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der nicht gierigen und mehrzeiligen Matching-Funktionen regulärer Ausdrücke in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!