Detaillierte Erläuterung der nicht gierigen und mehrzeiligen Matching-Funktionen regulärer Ausdrücke in Python

黄舟
Freigeben: 2017-08-08 11:05:14
Original
2040 Leute haben es durchsucht

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']
Nach dem Login kopieren

Achten Sie darauf, diese Situation zu vergleichen:


>>> re.findall(r"a(\d+)b","a23b")
    ['23']
>>> re.findall(r"a(\d+?)b","a23b") #如果前后均有限定条件,则非匹配模式失效
    ['23']
Nach dem Login kopieren

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')]
>>>
Nach dem Login kopieren

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")
    [&#39;23&#39;]
>>> re.findall(r"^a(\d+)b","a23b\na34b",re.M)
    [&#39;23&#39;,&#39;34&#39;]
Nach dem Login kopieren
Wenn jedoch kein ^-Zeichen vorhanden ist, ist


>>> re.findall(r"a(\d+)b","a23b\na34b")
    [&#39;23&#39;,&#39;43&#39;]
Nach dem Login kopieren
sichtbar, Es besteht keine Notwendigkeit, es erneut zu tun

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage