AW: Mail schrumpft auf dem weg vom Server auf den PC
Andre Tann
atann at alphasrv.net
Di Dez 13 09:12:30 CET 2022
On 12.12.22 23:35, Uwe Drießen wrote:
> Öhm ja und das 2. Suchmuster könnte in das erste doch noch mit <? >? Oder
nee, das geht nicht, denn wie kriegst Du raus wo die E-Mail-Adresse ist?
Dieser Pattern
.*<?\(.*\)>?.*
Könnte auch gleich übersetzt werden mit
.*
Regexen sind (normalerweise) gierig, und die Regex-Engine arbeitet so:
.* => trifft vom ersten bis zum letzten Zeichen. Danach ein <?, also
Spitze Klammer kann, muß aber nicht. Also entscheidet sich die Engine
für "muß nicht", weil sie dann kein Backtracking machen muß. Das erste
.* trifft also immer noch vom ersten bis zum letzten Zeichen. Dann kommt
ein .* (daß Klammern drum sind ist wurscht), und wieder wird die Engine
kein Backtracking machen wollen. Das erste .* trifft alles, <? trifft
nix und das zweite .* trifft auch nix. Dasselbe dann bei <? und beim
letzten .* .
Man müßte also etwas aufwendiger beschreiben, wo die E-Mail-Adresse
liegt, zB so:
[^[:blank:]]+@[^[:blank:]]+\.[^[:blank:]]+
das ist noch sehr grob, aber funktioniert so:
Mindestens ein Nicht-Leer, gefolgt von einem @, gefolgt von mindestens
einem Nicht-Leer, dann ein Punkt, dann nochmal mindestens ein
Nicht-Leer. Ist nicht schön, könnte aber funktionieren. Aber nur wenn
keine spitzen Klammern außenrum sind, weil die zählen auch als
Nicht-Leer. Und schon wirds schwer lesbar:
<?[^[:blank:]]+@[^[:blank:]]+\.[^[:blank:]]+>?
--
Andre Tann
Mehr Informationen über die Mailingliste Postfixbuch-users