Heim >Backend-Entwicklung >Python-Tutorial >Python-Greed-Matching und Multi-Line-Matching

Python-Greed-Matching und Multi-Line-Matching

不言
不言Original
2018-04-19 10:29:482256Durchsuche

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!

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