Du könntest nach gängigen "Enden" suchen. Sowas wie
straße
str.
platz
allee
chaussee
weg
stieg
platz
...
aber auch das ist wohl nur eine 80%-Lösung.
Wenn du auch noch ausländische Adressen dabei hast, wo die Hausnummer manchmal vorn steht "36 Rue de Sonstwas", wird es nochmal komplizierter.
Vielleicht wäre auch ein Ansatz, zu schauen, wieviele Stellen mit zusammenhängenden Ziffern es gibt. Folgt ein Punkt darauf? An welcher Stelle liegt dieser / diese?
Edit: Dein Trennprogramm könnte auch noch ein Maß mitgeben, wie "sicher" es sich ist, die Aufgabe richtig gemacht zu haben. Das Ziel würde dann sein, dass die Dinge, bei denen es sich sicher ist, 100%ig stimmen, und man dann sukzessive immer mehr Fälle behandeln kann, die man auch als sicher bewertet.
Je nach gewünschtem / möglichem Aufwand.
Edit 2: Ich habe den Titel "Regulärer Ausdruck" mal etwas konkretisiert, ich hoffe, das ist in deinem Sinne.
Edit 3: Wenn du es mit Dingen zu tun hast, die irgendwann mal eingescannt wurden, können dir Nullen für den Buchstaben O und Einsen für den kleinen Buchstaben l begegnen. Wenn du nun nach Ziffern suchst, kann das wehtun.
Last edited: 2010-02-24 09:41:46 +0100 (CET)
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;
use strict; use warnings; Link zu meiner Perlseite