Einzelnen Beitrag anzeigen

tommie-lie
(Gast)

n/a Beiträge
 
#5

Re: Frage zu regulären Ausdrücken

  Alt 3. Feb 2005, 14:15
Zitat von pajofego:
Ich hoffe ich habe deine Frage richtig verstanden. Soweit ich das weiss ist es PERL.
Also doch PCRE
Ist aber aufgebohrt, wie's aussieht, denn named groups kenne ich aus PCRE nicht

So, zum Problem:
Nur Datum und die ersten vier Ziffern danach, ohne Uhrzeit? Eh voilá!
Code:
string line = "31.01.2005 17:45 4211.86 4258.41 4211.86 4254.85";
Regex regexDate = new Regex(@"(?<date>(\d{2}\.){2}\d{4}).*?(?<number>\d{4})");
MatchCollection matches = regexDate.Matches(line);
foreach (Match m in matches)
{
    listBox1.Items.Add(String.Format("Datum: {0}  Wert: {1}",
    m.Groups["date"],
    m.Groups["number"]));
}
Was wird getan? Es gibt zwei named groups, "date" und "number". Die beiden werden entsprechend definiert, wie sie aussehen sollen, dazwischen kommt ".*?", also beliebige Zeichen, damit der Ausdruck passt, aber so wenige wie möglich. In der Ausgabe wird nicht der gesamte Match genommen, sondern nur die beiden Gruppen, die uns interessieren, nämlich das Datum und die Nummer.

Edit: Argh, schon wieder zu spät Aber dafür ist mein Ausdruck einfacher
Ach ja, ich habe nur die ersten vier Ziffern genommen, falls du die Zahlen als ganzes meintest (4 Ziffern, ein Punkt und nochmal zwei Ziffern), müsstest du meinen Ausdruck noch entsprechend erweitern...
  Mit Zitat antworten Zitat