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