Heim >Backend-Entwicklung >Python-Tutorial >Detaillierte Erläuterung der nicht gierigen und mehrzeiligen Matching-Funktionen regulärer Ausdrücke in Python

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

黄舟
黄舟Original
2017-08-08 11:05:142081Durchsuche

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


>>> re.findall(r"^a(\d+)b","a23b\na34b")
    ['23']
>>> re.findall(r"^a(\d+)b","a23b\na34b",re.M)
    ['23','34']
Wenn jedoch kein ^-Zeichen vorhanden ist, ist


>>> re.findall(r"a(\d+)b","a23b\na34b")
    ['23','43']
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!

Stellungnahme:
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