[PINGUIN] Reguläre Ausdrücke

Sebastian Dellit sebo at blindzeln.de
Do Jul 5 12:39:56 CEST 2007


Hoppa Pinguin Leser und Leserinnen,

so, jetzt wirds mal spannend. *g* Ich versuche gerade mein Logcheck
anzupassen, denn wer hat schon Lust, sich durch die hundert bekannten
und unbedenklichen Nachrichten zu wühlen. :-)

Folgendes zu regulären Ausdrücken, ob ich es verstanden habe, wobei
ich jeweils in der ersten Zeile etwas aus dem Netz kopiert habe und in
der zweiten - von einem * angekündigt - werde ich es so schreiben, wie ich es verstehe:

c Ein einzelner Buchstabe passt auf sich selbst.
* Das verstehe ich nicht. Wie kann ich mit c einen regex machen? Denn c
kommt ja oft genug in Texten vor. ;-)

. Ein Punkt steht für genau einen beliebigen Buchstaben, außer das Zeilenende.
* Ich kann also mit einem Punkt jeweils ein Zeichen ersetzen. Also ein
Wildcard für ein Zeichen? h.l könnte also hal, hol, hul, ... bedeuten?

? Das dem Operator ? voranstehende Zeichen null oder einmal.
* Wenn ich hinter ein Zeichen das ? setze, so heißt es, das das vorige
Zeichen 0, oder einmal existieren muss.

* >Das dem Operator * voranstehende Zeichen null mal oder öfter.
* Wie oben, nur kann es auch mehrmals auftreten. Z. B. könnte " *"
bedeuten, dass das Leerzeichen keinmal, 1 mal oder mehrmals auftaucht.
Hier weiß ich nicht, ob das größer Zeichen richtig ist?

+ Das dem Operator + voranstehende Zeichen ein mal oder öfter.
* Wie oben, nur das es mind. 1 mal vorhanden sein muss.

^ Das Caret (^) bedeutet Zeilenanfang.
* Wenn man diesen Operator nutzt, muss die folgende Zeichenkette am
Anfang der Zeile sein?

$ Das Dollarzeichen ($) bedeutet Zeilenende.
* Wenn man diesen Operator hinter einer Zeichenkette verwendet, so muss
diese Zeichenkette am Ende sein?

< Bedeutet Wortanfang.
* Bedeutet also, das die Zeichenkette, die diesem Operator folgt, am
Wortanfang sein muss? also "<mei" würde auf z. B. mein zutreffen?

> Bedeutet Wortende.
* wenn ich also den Operator > nutze, so wird die Zeichenkette, die
vor diesem Operator steht, an Wortenden gesucht? Also "allo>" könnte
auf hallo zutreffen?>

[Buchstaben] Ein Buchstabe aus der Menge.
* [abc[b|c|] würde bedeuten, das nach abc, abd geschaut wird?

[^Buchstaben] Ein Buchstabe, der NICHT in der Menge steht.
* abc[^d] würde abc aber nicht abd bedeuten?

(...) Zusammenfassung eines Ausdrucks. Wichtig zum Ersetzen.
* Damit macht man genau was? Vermutlich wird das, was in den Klammern
steht, genau so genommen?

| Ein logisches ODER mit dem verschiedene Ausdrücke verknüpft werden können.
* Kann verwendet werden, um mehrere Zeichen an einer oder mehreren
Stellen möglich zu machen, siehe oben.

\ Jedes Zeichen nach dem Backslash verliert seine Sonderbedeutung.
* Dürfte klar sein. *g*

Nun habe ich ein Beispiel, welches nicht so recht funktionieren mag:

fetchmail[3864]: Do 05 Jul 2007 11:00:05 CEST: schlafe 300 Sekunden lang

und mein regex sieht so aus:

fetchmail\[[0-9]+\]: +[a-z]+ +[0-9]+

Aber er funktioniert leider noch nicht. :-(

warum?

Danke und
-- 
Viele Grüße Sebastian
ICQ: 264706583 | MSM: sebo at blinzeln.de | Skype: sebo_de
E-Mail: sebo at aritamba.de | Web: www.blindzeln.de