RegEx-Prob

27/08/2009 - 12:50 von Olaf Rabbachin | Report spam
Hallo allerseits,

ich bastle an einer RegEx, an der ich beim letzten Quentchen scheitere.

Ich habe eine Liste von Datensàtzen. Die Felder darin sind leider nicht
durchgàngig getrennt, mal sind sie in "" eingeschlossen, mal nicht.
Das letzte Feld eines Datensatzes wird mit <CR><LF> eingeleitet, kann
mehrere Zeilen umfassen (dann aber immer nur mit <LF> getrennt. Der
Datensatz selbst wird dann mit einem zweiten <CR><LF> abgeschlossen:

+XXXX: 2,"AB","+49123123123",,"09/08/26,11:42:39+08"<CR><LF>
Textzeile1<LF>
Textzeile2<CR><LF>
+XXXX: 3,"AB","+49234234234",,"09/08/27,12:23:35+08"<CR><LF>
Textzeile1<LF>
Textzeile2<LF>
Textzeile3<CR><LF>
+XXXX: 4,"DA","+491711440477",,"09/08/26,15:27:49+08"<CR><LF>
Textzeile1<LF>
Textzeile2<CR><LF>
+XXXX: 1,"AC","+491711440477",,"09/08/26,15:27:49+08"<CR><LF>
Textzeile1<LF>
Textzeile2<LF><CR><LF>

Ich habe daraus (mit Expresso) folgende RegEx gebaut (Zeilenumbrüche für
bessere Lesbarkeit):

(?:\+XXXX\:\s)
(?<Index>\d)
(?:\,\")
(?<Type>AB|AC|DA|DC)
(?:\"\,\")
(?<PhoneNumber>[+1234567890]*)
(?:\"\,\,\")
(?<Timestamp>
(?<Year>\d{1,2})\/(?<Month>\d{1,2})\/(?<Day>\d{1,2})\,
(?<Hour>\d{1,2})\:(?<Minute>\d{1,2})\:(?<Second>\d{1,2})
\+(?<Timezone>\d{1,2})
)
(?:\")
(?<Text>.+)

Das klappt allerdings nur für alle bis auf die letzte Gruppe - in dieser
bekomme ich immer nur die erste Textzeile (Gruppe "Text").
Wie bekomme ich es hin, dass in die "Text"-Gruppe alles aufgenommen wird,
bis entweder das Ende der Liste, oder der Beginn des nàchsten "+XXXX: ",
das den nàchsten Datensatz einleitet, gefunden wird?

Gruß,
Jonas
 

Lesen sie die antworten

#1 Olaf Rabbachin
27/08/2009 - 13:21 | Warnen spam
Hi,

Olaf Rabbachin wrote:

Gruß,
Jonas



LOL. Man sollte wohl nicht schreiben und nebenbei vom Sohnemann (= Jonas)
erzàhlen. :-)

Gruß,
Olaf

Ähnliche fragen