Regulärer Ausdruck gesucht

Hallo,

ich programmiere in ASP.NET und bin in der unangenehmen Lage, ein paar Informationen aus einem langen String extrahieren zu müssen. Dazu möchte ich einen Regulären Ausdruck verwenden, den ich jedoch nicht erstellen kann. Da ich vermute, dass das ganz leicht ist, wenn man damit umgehen kann, baue ich auf eure Unterstützung :smile:

Hier der Aufbau des Strings (ascii-Datei):

-----------------------------

11.May.2005 , H904 , 69.86 , 6.02 , 5.23
13.May.2005 , G22 , 96.88 , 5.76 , 5.39
14.May.2005 , E307 , 100.94 , 5.46 , 4.72
...etc
-----------------------------

Ich habe z.B. den Suchstring „E307“
Ich brauche: die in dieser Zeile dahinter stehenden Zahlen 100.94, 5.64, 4.72, die, wie zu sehen ist, durch Kommata und mehrfachen Leerzeichen voneinander getrennt sind.

Spontaner Einfall?

Vielen Dank im Voraus,
Alexander

Hi,

wenn der String immer nur durch ‚,‘ getrennt wird, kannst du doch einfach string.Split(new char[] { ‚,‘, ’ '}) aufrufen. Dann hast die einzelnen Teilstrings.

lg
georg

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

ich programmiere in ASP.NET und bin in der unangenehmen Lage,
ein paar Informationen aus einem langen String extrahieren zu
müssen. Dazu möchte ich einen Regulären Ausdruck verwenden,
den ich jedoch nicht erstellen kann. Da ich vermute, dass das
ganz leicht ist, wenn man damit umgehen kann, baue ich auf
eure Unterstützung :smile:

Hier der Aufbau des Strings (ascii-Datei):


11.May.2005 , H904 , 69.86 , 6.02 , 5.23
13.May.2005 , G22 , 96.88 , 5.76 , 5.39
14.May.2005 , E307 , 100.94 , 5.46 , 4.72
…etc

Ich habe z.B. den Suchstring „E307“
Ich brauche: die in dieser Zeile dahinter stehenden Zahlen
100.94, 5.64, 4.72, die, wie zu sehen ist, durch Kommata und
mehrfachen Leerzeichen voneinander getrennt sind.

Spontaner Einfall?

Hallo,

ich hätte folgenden anzubieten:

"\[0-9]{2}\.[a-zA-Z]{3}.[0-9]{4}[,]\*E307[,]\*([.0-9]\*)[,]\*([.0-9]\*)[,]\*([.0-9]\*)\"

Dieser Ausdruck müsste die drei Zahlen 100.94, 5.46 und 4.72 matchen.

Gruss, Omar Abo-Namous

Danke!!

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi!
Moment, diese RE wird nicht funktionieren, wenn vorne keine 2 Ziffern stehen, also z.B. bei einer Zeile, die mit „4.May…“ beginnt.

Wenn’s nur auf die Zahlen ankommt, die zwischen bestimmten Kommata stehen, dann kann man doch leichter die Teile nehmen, die zwischen den Kommata stehen, unabhängig vom konkreten Aufbau der Teile, die Dich ohnehin nicht interessieren. Also in etwa sowas (aus dem Kopf, kann Fehler enthalten):

[^,]\*,[^,],([^,]\*),([^,]\*),(.\*)

Damit bekommst Du die Zahlen samt führenden und folgenden Leerzeichen, aber das bekommt man ja leicht mit string.Trim() weg.
Die Leerzeichen könnte man auch in der RE wegfiltern, aber das macht’s etwas unübersichtlicher.

Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ach ja, eines habe ich noch vergessen:

http://www.codeproject.com/dotnet/RegexTutorial.asp

Unter diesem Link findet man eine hervorragende Übersicht über reguläre Ausdrücke, solltest Du unbedingt mal lesen!

Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]