ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
431
431
EMPFEHLEN
-
Hallo,
leider komme ich momentan nicht weiter. Ich schreibe derzeit einen Mail-Service in Java und lese die Informationen mithilfe des POP3-Befehls "RETR <X>", wobei <X> fuer die Message-ID steht, aus.
Im Betreff (Subject) steht dann aber z.B. =?ISO-8859-1?Q?Test-Betreff?= aber ich finde hierfuer keinen passenden RegExp. Kann mir da jemand helfen? Bitte bedenken, dass es hierfuer auch UTF-8 usw.. gibt von den Encodings her.
So siehts momentan bei mir aus:
Code :1 2 3 4 5 6
Pattern checkSubject = Pattern.compile("Subject: (.*)"); Matcher checkingSubjects = checkSubject.matcher(array[i]); if (checkingSubjects.matches()) { subject = checkingSubjects.group(1).toString(); }
Vielen Dank im Voraus.Geändert von c-r-y (12.11.08 um 11:41 Uhr) Grund: Code-Tag eingefuegt.
-
Hallo c-r-y,
wie wäre es ohne reguläre Ausdrücke und zwar mit der split-Funktion?
Code java:1 2 3 4 5
String[] fields = array[i].split("\\?"); if (fields.length == 5) { subject = fields[3]; }
Aber auch nur, wenn es immer die gleiche Anzahl an "Feldern" ist, die mit einem Fragezeichen getrennt sind und das 4. Feld (Index 3) der Betreff ist.
Was ich dann hier gerade überlege, wie man ein Fragezeichen im Betreff deutet?
Viele Grüße,
MANGeändert von MAN (15.11.08 um 20:41 Uhr)
BLT - Die Bundesliga Tabelle der Saison 2011 / 2012 - http://www.spacehoster.de/blt/ NEU: mit Tippspiel!
EMail: mstangel@gmx.de
-
Ein generischer regulärer Ausdruck wäre:
Code :1
=\?([^?]+)\?([QBqb])\?([^?]+)\?=
Markus Wulftange
-
Danke! Es klappt einwandfrei

Code :1 2 3 4 5 6 7 8 9 10
Pattern checkSubject = Pattern.compile("Subject: =\\?([^?]+)\\?([QBqb])\\?([^?]+)\\?="); Matcher checkingSubjects = checkSubject.matcher(array[i]); if (checkingSubjects.matches()) { subject = checkingSubjects.group(3).toString(); } if (subject.isEmpty()) { subject = "-no subject-"; }
-
hi,
mal eine rein fachliche Frage von einem Ahnungslosen
wofür steht in dem Ausdruck QBqb
ich meine in Deinem Beispiel sehe ich ein Q also würde ich Q und q verstehen warum, aber warum auch das B und b ?
-
Das Q steht für die Quoted-printable-Kodierung, das B für die Base-64-Kodierung. Die Kleinbuchstaben analog dazu.
Markus Wulftange





Zitieren

Login





