====== 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) |