Einzelnen Beitrag anzeigen

tommie-lie
(Gast)

n/a Beiträge
 
#24

Re: Frage zu regulären Ausdrücken

  Alt 4. Feb 2005, 11:11
Zitat von Assarbad:
Ich meine, man sollte Uhrzeit und Datum zusammen matchen, weil du ansonsten ja die anderen Indeces verschiebst - aber vielleicht ist das bei named groups kein Problem.
Es ist kein Problem, weil man ja über den Namen drauf zugreifen kann. Ich glaube, du denkst ein wenig zu sehr um die Ecke

Zitat:
"{0,1}" besagt, daß dieser Ausdruck 0 oder 1mal vorkommen kann.
Abgekürzt mit "?"

Also ich würd's mit folgendem Ausdruck machen:
Code:
(?<date>(\d{2}\.){2}\d{4})([\s\t]+?\d{2}:\d{2})?[\s\t]+?(?<number1>[0-9\.]+)[\s\t]+?(?<number2>[0-9\.]+)[\s\t]+?(?<number3>[0-9\.]+)[\s\t]+?(?<number4>[0-9\.]+)
Der funktioniert mit der Zeichenkette "31.01.2005 17:45 421186 4.25841 4.6 4.285" mit und ohne Uhrzeit und auch mit jeder der vier Fließkommazahlen, Länge der Zahl und Ort des Trenners ist also egal. Zugegriffen werden kann über die Gruppen "date" und "number1" bis "number4".
Wenn man's "schön" haben will, nimmt man den Ausdruck:
Code:
(?<date>(?:\d{2}\.){2}\d{4})(?:[\s\t]+?\d{2}:\d{2})?[\s\t]+?(?<number1>[0-9\.]+)[\s\t]+?(?<number2>[0-9\.]+)[\s\t]+?(?<number3>[0-9\.]+)[\s\t]+?(?<number4>[0-9\.]+)
  Mit Zitat antworten Zitat