Benutzer-Werkzeuge

Webseiten-Werkzeuge


python_2

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
python_2 [2018/04/26 14:29]
root [Regular Expressions]
python_2 [2018/04/26 16:43] (aktuell)
root [Regular Expressions]
Zeile 374: Zeile 374:
 |?|Abschalten der Greedy-Funktion für das davor stehende Zeichen/Zeichenkombination, d.h. Abschalten des Verhaltens den regulären Ausdruck auf ein möglichst großes Gebiet anzuwenden. \\ Beschränkt den regulären Ausdruck auf den kleinsten Teil einer Teilzeichenkette der dem regulären Ausdruck passt, anstatt einen möglichst großen Teil einer Zeichenkette zu finden auf den der reguläre Ausdruck noch anwendbar ist (siehe Abschnitt oben)| |?|Abschalten der Greedy-Funktion für das davor stehende Zeichen/Zeichenkombination, d.h. Abschalten des Verhaltens den regulären Ausdruck auf ein möglichst großes Gebiet anzuwenden. \\ Beschränkt den regulären Ausdruck auf den kleinsten Teil einer Teilzeichenkette der dem regulären Ausdruck passt, anstatt einen möglichst großen Teil einer Zeichenkette zu finden auf den der reguläre Ausdruck noch anwendbar ist (siehe Abschnitt oben)|
 |\S|Ein Zeichen was kein Leerzeichen ist - oder anders alles was kein Leerzeichen ist| |\S|Ein Zeichen was kein Leerzeichen ist - oder anders alles was kein Leerzeichen ist|
 +|[ ]|Steht für eine frei definierbare Gruppe von Zeichen. \\ \\ Grundsätzlich (ohne extra Zeichen dahinter) steht es für genau ein Zeichen aus dieser Gruppe. In Zusammenhang mit +, * usw. erhält es die Bedeutung als wäre es ein normales Zeichen gefolgt von dem Spezialzeichen, das heißt irgend ein Zeichen der Gruppe kann ggf. mehrfach hintereinander auftreten, es muss sich dabei aber nicht um das gleiche Zeichen handeln, es müssen nur Zeichen der Gruppe sein -> also ist die Gruppe a,b,c, dann könnte es aabca sein. \\ \\ <WRAP>
 +Gruppendefinition:
 +  * [A-Z] - der "-" Operator definiert einen Bereich (inklusive dem ersten und letzten angegeben Zeichen) von Zeichen
 +  * [ACG] - definiert eine Liste von Zeichen 
 +
 +Die beiden Vorgehensweisen können gemischt werden:
 +  * [A-Da-dF] - matched Zeichen A-D und a-d und F
 +
 +**Hinweis:** Die Angaben sind Case-Sensitiv, Groß- und Kleinschreibung haben also Bedeutung  
 +</WRAP>|
 +|[^ ]|Matcht alles außer die Zeichen die in der eckigen Klammer definiert sind - ist eine Umkehr|
  
 ^Funktion ^Beschreibung ^ ^Funktion ^Beschreibung ^
Zeile 383: Zeile 394:
 </code> </code>
 Oben stehendes Beispiel würde ein Objekt zurück geben, würde es nicht matchen würde es None zurück geben. Oben stehendes Beispiel würde ein Objekt zurück geben, würde es nicht matchen würde es None zurück geben.
-</WRAP>|+</WRAP> |\\ \\
 |re.findall|Liefert eine Liste mit Strings zurück auf die der regluläre Ausdruck zutraf. \\ <WRAP> |re.findall|Liefert eine Liste mit Strings zurück auf die der regluläre Ausdruck zutraf. \\ <WRAP>
 <code> <code>
Zeile 390: Zeile 401:
 </code> </code>
 Das Ergebnis ist eine Liste mit 2 Elementen mit jeweils "ll" in diesen. Das Ergebnis ist eine Liste mit 2 Elementen mit jeweils "ll" in diesen.
-</WRAP> | 
- 
  
 +**Beschränken des Rückgabe-Bereichs**
 +\\
 +Es kann sein, dass man zwar auf einen bestimmten Bereich matchen will, aber nur einen Teilstring extrahieren (der nicht identisch ist mit dem Gesamtstring auf den man matcht).
 +\\
 +Dazu kann man einen Teilausdruck in Klammern definieren, es wird dann zwar auf den gesamten regulären Ausdruck gematcht, aber nur das das Ergebnis des Ausdrucks in Klammern wird in den Ergebnissen berücksichtigt. \\
 +<code>
 +import re
 +a="From: Peter.Deichsel@something.de"
 +re.findall("^\W*From:\W*(\S+)",a)
 +</code>
 +In obigem Beispiel ist die E-Mailadresse im From von Interesse. \\
 +  * ^\W*From:\W* -> stellt sicher das der From-Header gefunden wird, es können davor und dahinter Leerzeichen sein (\W*)
 +  * \S+ -> stellt sicher das nach dem Header mindestens ein Zeichen kommt was kein Leerzeichen ist
 +  * () -> bedeutet das nur das Ergebnis des reguläre Ausdruck innerhalb der Klammern zurückgeliefert wird
  
 +In obigem Beispiel würde "Peter.Deichsel@something.de" als Ergebnis zurückgeliefert.
 +</WRAP> |
python_2.1524745753.txt.gz · Zuletzt geändert: 2018/04/26 14:29 von root