Heim >Backend-Entwicklung >Python-Tutorial >Was ist der Hauptunterschied zwischen Pythons „re.match' und „re.search'?

Was ist der Hauptunterschied zwischen Pythons „re.match' und „re.search'?

DDD
DDDOriginal
2024-12-22 12:54:17644Durchsuche

What's the Key Difference Between Python's `re.match` and `re.search`?

Den Hauptunterschied zwischen re.match und re.match verstehen

Im re-Modul von Python sind dies die Funktionen match() und search() spielen unterschiedliche Rollen beim Mustervergleich. Der Hauptunterschied liegt in ihren Ankerpunkten.

re.match

Die Funktion match() überprüft, ob am Anfang der Eingabezeichenfolge ein Muster vorhanden ist. Der Rest der Zeichenfolge wird nicht berücksichtigt, wodurch sichergestellt wird, dass die Übereinstimmung ausschließlich am Anfang erfolgt. Das bedeutet, dass re.match kein Ergebnis zurückgibt, selbst wenn das Muster an anderer Stelle in der Zeichenfolge vorkommt.

re.search

Im Gegensatz dazu untersucht re.search Durchsuchen Sie die gesamte Eingabezeichenfolge und suchen Sie nach Vorkommen des Musters. Es gibt ein Übereinstimmungsobjekt zurück, wenn das Muster irgendwo in der Zeichenfolge gefunden wird. Diese Funktion ist weniger restriktiv als re.match, da sie nicht erfordert, dass das Muster die Zeichenfolge beginnt.

Wichtige Überlegungen

Berücksichtigen Sie bei der Auswahl der zu verwendenden Funktion Folgendes:

  • Verwenden Sie re.match, wenn Sie sicherstellen müssen, dass das Muster am Anfang des auftritt string.
  • Verwenden Sie re.search, wenn Sie ein beliebiges Vorkommen des Musters finden möchten, unabhängig von seiner Position in der Zeichenfolge.
  • re.match ist im Allgemeinen schneller als re.search, da dies der Fall ist ein kleinerer Suchraum.

Beispiele aus der Praxis

Um den Unterschied zu veranschaulichen, betrachten wir Folgendes die folgende Zeichenfolge:

"This is a sentence with multiple words."

Die Verwendung von re.match mit dem Muster „This“ ist erfolgreich, während die Verwendung von re.search ebenfalls erfolgreich ist, da „This“ am Anfang der Zeichenfolge erscheint. Wenn wir jedoch nach dem Muster „with“ suchen, gibt nur re.search ein Ergebnis zurück, da „with“ die Zeichenfolge nicht beginnt.

Betrachten wir nun eine Zeichenfolge mit Zeilenumbrüchen:

"Line 1\nLine 2"

Die Verwendung von re.match("^Line 2", string, re.MULTILINE) schlägt fehl, da „^“ am Anfang der Zeichenfolge verankert ist und nach einer neuen Zeile nicht übereinstimmt. Allerdings ist re.search("^Line 2", string, re.MULTILINE) erfolgreich, da für re.search nicht dieselbe Positionsbeschränkung gilt.

Das obige ist der detaillierte Inhalt vonWas ist der Hauptunterschied zwischen Pythons „re.match' und „re.search'?. 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