[gelöst] Problem mit einem QByteArray und einem QRegExp
[gelöst] Problem mit einem QByteArray und einem QRegExp
Hallo zusammen,
ich versuche jetzt schon einige Zeit aus einer Mail die "From:" Zeile raus zu filtern.
Leider scheitert es meiner Meinung daran (ist nur eine Vermutung!) daß das ByteArray nicht richtig das Format der Mail hat, also Zeilen umbrüche etc.. Obwohl wenn ich es ausgeben lasse alles richtig aussieht.
Wenn ich folgendes mache "QRegExp rx("^From:(.+)");" hatte ich normalerweise gedacht das ich so die Zeile extrahieren könnte was aber leider nicht geht.
Wenn ich es so versuche "QRegExp rx("From:(.+)");" bekomme ich ab dem From: die ganze Mail angezeigt.
Kann mir vielleicht einer einen Tip geben woran das liegen könnte oder wie ich den RegExp besser aufbauen kann?
Ist es vielleicht auch möglich das ich das Array erst anders abspeichern muss vielleicht als String und diesen String erst formatieren muss damit das klappt?
Gruß
Treehouse
ich versuche jetzt schon einige Zeit aus einer Mail die "From:" Zeile raus zu filtern.
Leider scheitert es meiner Meinung daran (ist nur eine Vermutung!) daß das ByteArray nicht richtig das Format der Mail hat, also Zeilen umbrüche etc.. Obwohl wenn ich es ausgeben lasse alles richtig aussieht.
Wenn ich folgendes mache "QRegExp rx("^From:(.+)");" hatte ich normalerweise gedacht das ich so die Zeile extrahieren könnte was aber leider nicht geht.
Wenn ich es so versuche "QRegExp rx("From:(.+)");" bekomme ich ab dem From: die ganze Mail angezeigt.
Kann mir vielleicht einer einen Tip geben woran das liegen könnte oder wie ich den RegExp besser aufbauen kann?
Ist es vielleicht auch möglich das ich das Array erst anders abspeichern muss vielleicht als String und diesen String erst formatieren muss damit das klappt?
Gruß
Treehouse
Zuletzt geändert von Treehouse am 22. September 2007 23:02, insgesamt 1-mal geändert.
Probiere es mit \n bzw. \r\n (=Zeilenumbruch):
Sehr hilfreich ist übrigens das bei der Qt-Installation mitgelieferte Tool RegExp im Ordner $QTDIR\examples\tools\regexp\ zum Testen der regulären Ausdrücke.
Code: Alles auswählen
QRegExp rx("From:(.+)\\r\\n");
Mhh leider klappt das so auch nicht es wird wieder die ganze mail angezeigt........... das ist echt komisch.caligano hat geschrieben:Probiere es mit \n bzw. \r\n (=Zeilenumbruch):
Sehr hilfreich ist übrigens das bei der Qt-Installation mitgelieferte Tool RegExp im Ordner $QTDIR\examples\tools\regexp\ zum Testen der regulären Ausdrücke.Code: Alles auswählen
QRegExp rx("From:(.+)\\r\\n");
![Rolling Eyes :roll:](./images/smilies/icon_rolleyes.gif)
Was kann denn daran so schief laufen?.... ich meine ja immer noch das es etwas mit der Internen formatierung zu tun hat, denn er findet einfach das Zeilen ende nicht......... aber ich bin auch noch nicht so lange bei Qt um das zu beurteilen.
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Hallo,
versuch es mal mit:
Oder guck Dir mal die Funktion http://doc.trolltech.com/4.3/qbytearray.html#mid an.
MfG RD1978
versuch es mal mit:
Code: Alles auswählen
QRegExp regex;
regex.setMinimal( true );
regex.setPattern( "From:(.+)\\r\\n" );
MfG RD1978
Ok ich danke dir für den Tip, ich werde das gleich testen ...... meld mich dann zurück.RD1978 hat geschrieben:Hallo,
versuch es mal mit:Oder guck Dir mal die Funktion http://doc.trolltech.com/4.3/qbytearray.html#mid an.Code: Alles auswählen
QRegExp regex; regex.setMinimal( true ); regex.setPattern( "From:(.+)\\r\\n" );
MfG RD1978
Gruß
Treehouse