3 Stimmen

Regex zum Abgleich mit Zeichensatz

Ich habe versucht, eine Regex zu machen, um den Zeichensatz von Mime-Multipart-E-Mails abzugleichen, damit ich sie richtig dekodieren kann. Allerdings habe ich festgestellt, dass es einige Unterschiede im Format, die ich nicht scheinen, um eine Regex für zu arbeiten, wie ich bin kein Experte. Derzeit verwende ich (?<=charset=).*(?=;) Die Beispiele, die ich beim Versenden von E-Mails von verschiedenen Kunden gefunden habe, sind jedoch folgende:

Inhalt-Typ: text/plain; charset=ISO-8859-1; format=flowed

charset=US-ASCII;

Inhalt-Typ: text/plain; charset=iso-8859-1

Also meine Regex funktioniert auf die ersten beiden, aber nicht die letzte, jedoch wenn ich entfernen (?=;) dann werde ich auch die format=flowed Teil, den ich nicht will.

5voto

polygenelubricants Punkte 362173

Anstelle von .* können Sie verwenden [^;]* . Das heißt, alles andere als die ; .

So wird das Muster:

(?<=charset=)[^;]*

Referenzen

1voto

Phil Kermeen Punkte 129

Darauf aufbauend habe ich herausgefunden, dass dies eine Reihe weiterer Umstände abdeckt:

(?<=charset=)(([^;,\r\n]))*

Ich hoffe, das hilft.

0voto

Sjoerd Punkte 71416

Spiel auf entweder ; oder das Ende der Zeile ( $ ).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X