====== Regular Expressions ====== ===== Ausprobieren in der Konsole ===== Wichtig: Das Module ''re'' (Regular Expressions) muss einmal importiert werden. import re re.findall(".ie.", "Viele Beispiele eieiei!") # Liefert ["Viel", "piel", "eiei"] re.findall("(\d{1,2})-(\d{1,2})-(\d{4})", "Am 9-11-2013 war Samstag und am 10-11-2013 Sonntag.") # Liefert [("9", "11", "2013"), ("10", "11", "2013")] ===== Cheat Sheet ===== ==== Sonderzeichen ==== ^ Zeichen ^ Bedeutung ^ Match't ^ match't nicht ^ | . | Genau ein beliebiges Zeichen (ausser \n) | | | | [aeiou] | Genau ein Zeichen in der Klammer | e | f | | [a-f] | Genau ein Zeichen im Bereich | b | s | | [^3-9] | Genau ein Zeichen das **nicht** aufgeführt ist. | Z | 3 | | ^ | Anfang der Zeichenkette | | | | $ | Ende der Zeichenkette | | | | | | Oder (der Ausdruck davor oder danach) | | | | () | Gruppe | | | ==== Zeichenklassen ==== ^ Zeichen ^ Bedeutung ^ Match't ^ match't nicht ^ | \d | Eine Ziffer, wie [0-9] | 5 | B | | \w | Ein Zeichen, das in einem Wort vorkommen kann. | r | ; | | \b | Anfang oder Ende eines Worts | | | | \s | Ein Leerschlag oder Tabulator| | | | \n | Ein Zeilenumbruch | | | | \\ | Ein Backslash | \ | / | | \. | Ein Punkt | . | x | | \( | Eine Klammer | ( | ) | Wird eine Zeichenklasse gross geschrieben, invertiert sich die Auswahl. Z.B. ist \D irgendein Zeichen ausser einer Ziffer, also wie [^0-9]. ==== Quantifiers ==== ^ Zeichen ^ Bedeutung ^ | * | 0 bis beliebig viele des Ausdrucks davor (maximal) | | *? | 0 bis beliebig viele des Ausdrucks davor (minimal) | | + | 1 bis beliebig viele des Ausdrucks davor (maximal) | | +? | 1 bis beliebig viele des Ausdrucks davor (minimal) | | ? | 0 oder 1 des Ausdrucks davor (maximal) | | {5} | Genau 5 mal den Ausdruck davor | | {2,5} | Zwischen 2 und 5 mal den Ausdruck davor (maximal) | | {2,5}? | Zwischen 2 und 5 mal den Ausdruck davor (minimal) |