Gruppierung, Quantoren und Anker
Swipe um das Menü anzuzeigen
Das Verständnis, wie man Teile eines Musters gruppiert, die Anzahl der Wiederholungen angibt und definiert, wo ein Treffer innerhalb eines Strings erfolgen soll, sind grundlegende Fähigkeiten zum Schreiben leistungsfähiger regulärer Ausdrücke. In Python verwendet man Klammern (), um Gruppen zu erstellen, wodurch mehrere Zeichen als eine Einheit behandelt werden. Quantifizierer wie *, +, ? und {n,m} steuern, wie oft ein Zeichen oder eine Gruppe erscheinen soll. Anker wie ^ und $ sind spezielle Symbole, die jeweils den Anfang oder das Ende eines Strings markieren.
Gruppierung mit Klammern
Die Gruppierung mit Klammern ermöglicht es, Quantifizierer auf ganze Teilmuster statt auf einzelne Zeichen anzuwenden. Zum Beispiel passt (ab)+ auf eine oder mehrere Wiederholungen der Sequenz ab.
Quantifizierer
- Das Sternchen (
*) bedeutet "null oder mehrmals"; - Das Pluszeichen (
+) bedeutet "einmal oder mehrmals"; - Das Fragezeichen (
?) bedeutet "null oder einmal"; - Geschweifte Klammern (
{n,m}) geben eine minimale (n) und maximale (m) Anzahl an Wiederholungen an.
Anker
Anker sind keine zu vergleichenden Zeichen, sondern Markierungen für Positionen im String. Das Zirkumflex (^) markiert den Anfang, während das Dollarzeichen ($) das Ende eines Strings markiert.
1234567import re text = "hello hello world world world" pattern = r"(world\s+)+" matches = re.findall(pattern, text) print(matches)
Schritt-für-Schritt-Analyse: Gruppierung und Quantifizierer
In diesem Beispiel wird das reguläre Ausdrucksmuster (world\s+)+ verwendet, um wiederholte Vorkommen des Wortes world gefolgt von Leerzeichen zu finden. Die Funktionsweise dieses Musters lässt sich wie folgt aufschlüsseln:
- Die Klammern
()bilden eine Gruppe umworld\s+und behandeln das Wortworldsowie das nachfolgende Leerzeichen als eine Einheit; - Das Pluszeichen
+als Quantifizierer direkt nach der Gruppe bedeutet, dass diese Gruppe einmal oder mehrmals hintereinander erscheinen muss; - Dadurch passt das Muster auf jede Sequenz, in der
worldmit Leerzeichen dazwischen wiederholt wird, und erfasst die längste solche Sequenz.
Gruppierung ist besonders nützlich, wenn Quantifizierer auf eine Zeichenfolge angewendet oder Teile eines Treffers für die spätere Verwendung erfasst werden sollen. Quantifizierer können auf einzelne Zeichen, Zeichengruppen oder ganze Gruppen angewendet werden. Durch die Verwendung von Ankern mit diesen Mustern kann zusätzlich gesteuert werden, wo Treffer auftreten, beispielsweise um ein wiederholtes Wort nur am Anfang oder Ende eines Strings zu finden.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen