Sprache: C#
Die Funktion prüft, ob in einer Adresszeile eine Hausnummer enthalten ist.
Die Hausnummer kann maximal aus drei Ziffern bestehen.
Beispiele:
Königsweg 36b 90491 Nürnberg // true
Schillerstraße 90491 Düsseldorf // false
Amselweg 11 // true
Hansastraße 132b Bochum // true
Max Müller Bahnhofstraße 01099 Dresden // false
Eine hundertprozentige Lösung wird es nicht geben, aber mit dieser bin ich ganz gut gefahren.
static private bool ContainsHouseNumber(string address)
{
var regex = new Regex("\b\d{1,3}[A-Za-z]?\b");
return regex.IsMatch(address);
}
static private bool ContainsHouseNumber(string address)
{
var regex = new Regex("\b\d{1,3}[A-Za-z]?\b");
return regex.IsMatch(address);
}
Alte URL:
/snippet/adresse-auf-hausnummer-pruefen/14125
Man sollte vielleicht erwähnen dass es nur bei Hausbummern mit bis zu 3 Ziffern funktioniert. Ich weiß nicht wie oft bei uns Vierstellige Hausnummern (ohne Buchstaben) vorkommen, aber in anderen Ländern sieht man sie ja schon hin- und wieder.
Und ich würde den Regex außerhalb der Methode instanziieren um bei mehrfachem prüfen nicht jedes mal den „Regex Parser“ zu bemühen.
Ich habe den Hinweis ergänzt, danke.
Zum zweiten Punkt gebe ich dir auch Recht, ich lass es jetzt mal so. Das kann man dann bei Bedarf trennen.
Es gibt auch Gegenden/Laender, in denen Hausnummern nicht ueblich sind. Ich muss bei Formularen mit Hausnummernzwang immmer eine falsche Adresse angeben.
Stimmt, die Methode ist nur für Deutschland gedacht.
Der RegEx deckt schon einiges ab. Aber auch in Deutschland fällt noch einiges durch das Raster.
Straße des 17. Juli (Berlin),
Straße des 18. Oktober (Leipzig),
etc.
Mit Adressen in der Mannheimer Innenstadt dürfte es auch Probleme geben …
Wie ich oben schon geschrieben habe:
„Eine hundertprozentige Lösung wird es nicht geben, aber mit dieser bin ich ganz gut gefahren.“