Straße und Hausnummer Splitten

  • Guten morgen,

    ich stehe vor einem kleinen Problem und weiß leider nicht wir ich das lösen kann. Im Grunde möchte ich etwas ganz simples machen. Ich möchte die Hausnummer von der Straße trennen und jeweils in einzelne Variablen speichern. Das Problem an der Sache ist das die Straßennamen sehr unterschiedliche längen und formatierungen aufweisen. Ich hänge mal eine Liste mit Beispielen an.

    Spoiler anzeigen

    Große Märkerstr. 18
    Wilhelm-Külz-Str. 16
    Kleine Ulrichstr. 25
    Ludwig-Wucherer-Str. 43
    Große Steinstr. 69
    Mansfelder Str. 56
    Waisenhausring 8
    Geiststr. 47
    Kutschgasse 4
    Große Nikolaistr. 2
    Domplatz 4 A
    Heinr-u-Thom-Mann-Str 9
    Große Steinstr. 35
    Alter Markt 32
    Große Ulrichstr. 25
    Hafenstr. 33
    Große Klausstr. 17
    Leipziger Str. 39
    Kleine Ulrichstr. 11
    Große Ulrichstr. 25
    Alter Markt 14
    Elsa-Brändström-Str. 212
    Turmstr. 118-123
    Voßstr. 6
    Niemeyerstr. 24
    Steinweg 30a
    Gräfestr. 18
    Beesener Str. 12
    Beesener Str. 221 C
    Dryanderstr. 35
    Jacobstr. 1
    Turmstr. 92-100
    Ludwigstr. 20
    Elsa-Brändström-Str. 59 a
    Jacobstr. 61
    Franckestr. 1
    Amselweg 48 A
    Delitzscher Str. 74-76
    Grenzstr. 37
    Krukenbergstr. 2
    Delitzscher Str. 40 Hinterhof
    Am Steintor 23
    Krukenbergstr. 8
    Julius-Ebeling-Str. 9
    Leipziger Chaussee 191f
    Edmund-von-Lippmann-Str. 13
    Berliner Str. 239
    Julius-Ebeling-Str. 2
    Delitzscher Str. 70
    Delitzscher Str. 72
    Bahnhofsplatz 1
    Leipziger Chaussee 193
    Grenzstr. 14
    Delitzscher Str. 72
    Am Steintor 5
    Leipziger Chaussee 91-95
    Conradstr. 31
    Delitzscher Str. 65
    Kanenaer Weg 4
    Delitzscher Str. 88
    Reideburger Str. 27
    Magdeburger Str. 38
    Rudolf-Ernst-Weise-Str. 6
    Am Steintor 23
    Thüringer Str. 30
    Leipziger Chaussee 147
    Delitzscher Str. 59
    Freiimfelder Str. 5/6
    Magdeburger Str. 51
    Nauendorfer Str. 02
    Leipziger Chaussee 193
    Leipziger Chaussee 193
    Ernst-Kromayer-Str. 13
    Grenzstr. 32
    Raffineriestr. 43
    Richard-Wagner-Str. 53
    Feuerbachstr. 76
    Adolfstr. 8
    Richard-Wagner-Str. 51/52
    Burgstr. 44A
    Seebener Str. 4
    Äußere Hordorfer Str. 1
    Albert-Schweitzer-Str. 22
    Äußere Hordorfer Str. 1
    Feuerbachstr. 76
    Hermesstr. 3
    Hardenbergstr. 13
    Carl-Robert-Str. 8
    Seebener Str. 30
    Fiete-Schulze-Str. 6
    Otto-Stomps-Str. 100
    Fiete-Schulze-Str. 13 a
    Fiete-Schulze-Str. 13a
    Delitzscher Str. 269
    Sonneberger Str. 16
    Berliner Str. 62-66
    Delitzscher Str. 79
    Otto-Stomps-Str. 41
    Delitzscher Str. 269
    Am Teich 3
    Sietzscher Str. 3 A
    Delitzscher Str. 125
    Reideburger Str. 39
    Cossebauder Weg 12
    Dorflage 20
    Berliner Str. 67 b
    Trothaer Str. 69 a
    Köthener Str. 33 a
    Am Saalehafen 1
    Am Saalehafen 2
    Brachwitzer Str. 16
    Brachwitzer Str. 30
    Edelweißweg 5
    Helmut-Just-Str. 9
    Saalestr. 4
    Schleusenstr. 7
    Willi-Dolgner-Str. 25
    Kopernikusstr. 61
    Brachwitzer Str. 16
    Am Saalehafen 1
    Magdeburger Chaussee 27
    Hans-Dittmar-Str. 3
    Köthener Str. 33 a
    Köthener Str. 33 a
    Trothaer Str. 85
    Am Saalehafen 1
    Schneeglöckchenweg 16
    Am Heckenweg 15
    Hans-Dittmar-Str. 3
    Daniel-Vorländer-Str. 2
    Weinbergweg 23
    Weinbergweg 23
    Heinrich-Damerow-Str. 4
    Rotbuchenweg 20
    Agnes-Gosche-Str. 4
    Salzmünder Str. 09
    Kröllwitzer Str. 35
    Weinbergweg 23
    Heinrich-Damerow-Str. 2
    Weinbergweg 23
    Kröllwitzer Str. 5
    Schiepziger Str. 59
    Heinrich-Damerow-Str. 2
    Schiepziger Str. 21
    Heinrich-Damerow-Str. 4
    Otto-Kanning-Str. 32
    Daniel-Vorländer-Str. 8
    Heinrich-Damerow-Str. 1
    Daniel-Vorländer-Str. 2
    Schwarzerlenweg 1
    Heinrich-Damerow-Str. 4
    Neuragoczystr. 18 a
    Röntgenstr. 1
    Am Stadion 7
    Am Bruchsee 12
    Hallesche Str. 6
    Azaleenstr. 42
    Neustädter Passage 6
    Neustädter Passage 3
    Neustädter Passage 17 d
    Hallorenstr. 13
    Ernst-Hermann-Meyer-Str. 28
    Richard-Paulick-Str. 22
    Am Treff 1
    Lortzingbogen 18
    Schieferstr. 20
    Schieferstr. 20
    Göttinger Bogen 15
    Kaolinstr. 16
    Kaolinstr. 16
    Weststr. 3
    Zscherbener Landstr. 13
    Zscherbener Landstr. 17
    Grazer Str. 6 A
    Steinbruchweg 9
    Brüsseler Str. 30
    Böllberger Weg 170
    Erich-Kästner-Str. 50
    Dieselstr. 128
    Merseburger Str. 237
    Albert-Ebert-Str. 43
    Merseburger Str. 237
    Eisenbahnstr. 3
    Willi-Brundert-Str. 7
    Tiefe Str. 8
    Camillo-Irmscher-Str. 2
    Chemiestr. 12
    Chemiestr.
    Eisenbahnstr. 3
    Merseburger Str. 317
    Merseburger Str. 371
    Äußere Radeweller Str. 4
    Chemiestr. 24
    Ascherslebener Str. 16
    Pappelallee 26A
    Pappelallee 1
    Willi-Brundert-Str. 3
    Gottfried-Lindner-Str.
    Willi-Brundert-Str. 3
    Regensburger Str. 13
    Am Rosengarten 83
    Chemiestr. 11
    Eisenbahnstr. 3
    Merseburger Str. 371
    Staßfurter Str. 38
    Hohe Str. 2
    Merseburger Str. 398
    Chemiestr. 22
    Straße der Einheit 18
    Karl-Marx-Str. 5
    Fontanestr. 49
    Ernst-Thälmann-Str. 39
    Karl-John-Str. 10
    Carl-Wentzel-Str. 30
    Straße des Friedens 17
    Hauptstr. 30
    Industriestr. 1
    Reichsbahnstr. 6
    Ernst-Thälmann-Str. 39
    Zscherbener Str. 9
    Straße der Einheit 18
    Straße der Einheit 18
    Albert-Heise-Str. 72b
    Südstr. 6
    Die langen Klägen 1
    Zscherbener Str. 9a
    Südstr. 06
    Die langen Klägen 2
    Rosa-Luxemburg-Platz 4
    Albert-Heise-Str. 60
    Köchstedter Weg 3
    Carl-Wentzel-Str. 30
    Schüco-Str. 3
    Bahnhofstr. 15 b
    Grünstr. 14 c
    Goetheplatz 4
    Geltestr. 8
    Zwintschönaer Str. 3
    Eschengrund 9
    Schüco-Str. 3
    Lerchenweg 9-10
    An der Spitze 3
    Queiser Ring 1
    Am Halleschen Dreieck 8
    Geltestr. 19
    Brehnaer Str. 15
    Igepa-Ring 7
    Bahnhofstr. 33
    Köthener Str. 8
    Am Halleschen Dreieck 8
    Droyßiger Weg 56
    Am Güterbahnhof 9
    Hans-Dietrich-Genscher-Str. 34
    Zörbiger Str. 5
    Im Mühlengrund 42
    Hans-Dietrich-Genscher-Str. 28
    Igepa-Ring 11
    Igepa-Ring 11 a
    Petersdorfer Str. 5
    Kirschhöhe 3
    Gewerbehof 3
    Zingelrain 1
    Köthener Str. 8
    Zörbiger Str. 9
    Bitterfelder Str. 2
    Köthener Str. 8
    Igepa-Ring 4
    Grünstr. 10
    Hallesche Landstr. 2
    Johann-Sebastian-Bach-Str. 1
    Bahnhofstr. 33
    Braschwitzer Str. 7
    Rudolf-Walther-Str. 2
    Brehnaer Str. 10
    Zörbiger Str. 7
    Hans-Dietrich-Genscher-Str. 10
    Brehnaer Str. 16
    Hauptstr. 27
    Köthener Str. 8
    Ringstr. 2
    Birkhahnweg 20
    Hans-Dietrich-Genscher-Str. 9
    An den Teichen 6
    Im Mühlengrund 25
    Uralitastr. 1
    Igepa-Ring 11 a
    Brehnaer Str. 1
    Teichaer Weg 5
    Alte Fabrik 3
    Magdeburger Chaussee 44
    Alte Fabrik 3
    Bahnhofstr. 7
    Brachwitzer Str. 50
    Dorfplatz 9
    Kreisstr. 47
    Alte Fabrik 3 c
    Bahnhofstr. 7
    Bahnhofstr. 7
    Zum Wäldchen 1
    Schulstr. 3
    Hallesche Str. 3
    Lettewitzer Str. 21
    Eschenweg 3
    Am Mühlberg 3
    Ölberg 13
    Hederslebener Str. 30
    Äußere Lettiner Str. 5c
    Eislebener Str. 28
    Herrfurthstr. 8
    August-Bebel-Str. 1
    Herrfurthstr. 9
    Goethestr. 13c
    Weißenfelser Str. 46
    Ladegaststr. 2
    Hallesche Str. 36b
    Hoppenhaupt-Str. 6
    Paracelsusweg 53
    Beunaer Str. 4
    Hohndorfer Weg

    Herrfurthstr. 9
    Florian-Geyer-Str. 21 c
    Agnerstr. 8
    Beunaer Str. 4
    Brandisstr. 3
    Freiligrathstr. 13
    Brauhausstr. 8
    Rosa-Luxemburg-Str. 18A
    Herrfurthstr. 12
    Recyclingpark Beuna
    Sixtistr. 26
    Naumburger Str. 13
    W.Liebknecht-Str. 36-38
    Querfurter Str. 8
    Brandisstr. 7
    Ladegaststr. 1
    Siegweg 15
    Brandisstr. 8
    Geusaer Str. 1
    Simon-Hoffmann-Str. 3
    Krautstr. 16
    Geusaer Str.
    Querstr. 11
    Fritz-Haber-Str.9
    Geusaer Str. 1
    Fritz-Haber-Str. 9
    König-Heinrich-Str. 9a
    Herrfurthstr. 5
    Hallesche Str. 36
    Gerichtsrain 48
    Weißenfelser Str. 72b
    Schokholtzstr. 8
    Herrfurthstr. 8
    Beunaer Str. 4
    Brandisstr. 6
    Brandisstr. 6
    Hoppenhaupt-Str. 5
    Bahnhofstr. 15
    Brandisstr. 10
    Saalestr. 1
    Hoppenhaupt-Str.
    Abbéstr. 72
    Dorfstr. 53
    Klobikauer Str. 8
    Seebeckstr. 5
    Lahnweg 10
    Roßmarkt 15
    Am Stadtpark 45
    An den Rohrackern 8
    An den Rohrackern 7
    Ladegaststr. 4
    Gotthardstr. 10
    Veilchenweg 5
    Amtshäuser 23-29
    Zeppelinstr. 5
    Zeppelinstr. 5
    Oststr. 2
    Der Scheitrain 32
    In den Längen 01
    In den Längen 6
    Am Bahnhof 6
    Hauptstr. 15
    Merseburger Str. 42
    Gewürzstr. 6
    Die Neue Str. 13
    Der Scheitrain 36
    Karl-Marx-Str. 1
    Teichstr. 2
    Soleweg 15
    Merseburger Str. 62
    Dorfstr. Rampitz 54a
    Sterlingsweg 48
    Leipziger Str. 120
    Lützener Str. 5
    Schillerweg 5
    Hauptstr. 9
    Hauptstr. 9
    Karl-Pieper-Str. 1
    Oststr. 2
    Am Haupttor 4301
    Am Haupttor 4613
    Zweimen 16 a
    Am Haupttor 4614
    Am Haupttor 2150
    Obere Dorfstr. 15
    Am Haupttor 2410
    Am Haupttor 4803
    Am Haupttor 7206
    Am Haupttor 3666
    Am Haupttor 6602
    Am Haupttor 3651
    Am Haupttor 4208
    Dorfstr. Wüsteneutzsch 2
    Am Haupttor 3101
    Am Haupttor 3101
    Am Haupttor 4614
    Am Haupttor 4310
    Göhlitzsch
    Roddener Weg 50
    Am Haupttor 4310
    Am Haupttor 1249
    Am Haupttor 3525a
    Am Haupttor 6310
    Am Haupttor 3648
    Am Haupttor 4303
    Am Haupttor 4930
    Häußlerstr. 5
    Spergauer Str. 83-85
    An der Bahn 91
    Am Haupttor 8322
    Am Haupttor 8322
    Am Haupttor 4805
    Am Haupttor 3525
    Am Haupttor 5210
    Am Haupttor 4310
    Am Haupttor 4310
    Am Haupttor 6619
    Am Haupttor 7302
    Kötzschener Str. 23
    Maienweg 1
    Am Haupttor 6411
    Am Haupttor 14
    Merseburger Str. 140
    Alte Leipziger Str. 38
    Friedrich-Ebert-Str. 125
    Am Haupttor 8642
    Am Haupttor 4310
    Franklebener Str. 5
    Am Haupttor 4208
    Am Haupttor
    Am Haupttor 4805
    Am Haupttor 7545
    Am Haupttor 4310
    Friedrich-Ebert-Str. 125
    Kötzschener Str. 23-25
    Am Haupttor 6144
    Am Haupttor 3651
    Am Haupttor 4614

    Wie ihr sehen könnt ist Hausnummer mal mit mal ohne einen Punkt von der Straße getrennt. Mal gibt es nur eine Nr. dann wieder einen ganzen berreich (23-25) und zusätzlich mal mit und mal Ohne zusatzbuchstaben. Wie kann ich das beides voneinander Trennen?

    LG
    Douky

  • ich würde die erste Ziffer als Zeichen nehmen, dass danach nur mehr die Hausnummer folgen kann. So z.B.:

    [autoit]

    $sAdresse = "Kötzschener Str. 23-25"
    $sStrasse = $sAdresse
    For $i = 1 To StringLen($sAdresse)
    If StringMid($sAdresse, $i, 1) >= "0" and StringMid($sAdresse, $i, 1) <= "9" Then
    $sStrasse = StringStripWS(StringLeft($sAdresse, $i - 1), 3)
    $sNummer = StringStripWS(StringMid($sAdresse, $i), 3)
    ConsoleWrite("Strasse: " & $sStrasse & ", Nummer: " & $sNummer & @CRLF)
    ExitLoop
    EndIf
    Next

    [/autoit]
  • Ich denke, es passt auch dieser Ausdruck:

    [autoit]

    StringRegExp($sAddress, "(.+)\h+(\d[-A-Za-z0-9 ]*)", 3)

    [/autoit]
  • StringRegExp liefert für "Kötzschener Str. 23-25" aber nur
    [0]|Kötzschener Str. 23-2
    [1]|5

  • Fast. Für "Richard-Wagner-Str. 51/52" liefert es nur
    [0]|Richard-Wagner-Str.
    [1]|51

  • Der OP muss dann nur noch abfangen, dass StringRegExp @error = 1 zurückgibt, wenn keine Ziffer in der Adresse gefunden wurde.

  • [autoit]

    #include <File.au3>
    #include <Array.au3>
    #include <String.au3>

    [/autoit][autoit][/autoit][autoit]

    global $var

    [/autoit][autoit][/autoit][autoit]

    _FileReadToArray(@scriptdir & "/deine_straßen.txt",$var)
    for $i = 1 to $var[0]
    $lol = StringSplit($var[$i],".")
    _ArrayDisplay($lol)
    Next

    [/autoit]

    //edit oh ich seh grad "mal mit mal ohne punkt" sry ^^

  • Funktioniert aber nur, wenn Du einen Punkt in der Adresse hast. Funzt also nicht bei:
    Heinr-u-Thom-Mann-Str 9
    Alter Markt 32
    etc.

  • Wo setzt Du bei "Alter Markt 32" den Punkt?

  • Theoretisch müsste das hier alles abdecken:

    Code
    "(.+)\h+(\d[-/A-Za-z0-9.]*)"

    "Hol alles bis zum letzten Leerzeichen, danach Zahlen und Buchstaben und Binde- sowie Schrägstriche."

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • Besser, aber scheitert an folgender Adresse: "Delitzscher Str. 40 Hinterhof"
    [0]|Delitzscher Str.
    [1]|40

    Die RegExp müsste in etwa lauten: Alles bis zur ersten Ziffer (exklusive) = Strasse, der Rest ist die Hausnummer

  • water:
    Kommentier doch bitte nicht jeden einzelnen Post. Sondern versuchs lieber besser.
    Deine Lösung scheitert auch bei denen ohne Hausnummer

    Is echt nich böse gemeint

  • Wie wärs denn hiermit? :)

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <Array.au3>
    Global $filereadtoarray
    _FileReadToArray(@scriptdir & "/Straßen.txt", $filereadtoarray)
    Global $array[$filereadtoarray[0]][3]
    For $i = 1 To $filereadtoarray[0]
    $array[$i - 1][0] = $filereadtoarray[$i]
    $stringlen = StringLen($filereadtoarray[$i])
    For $j = 1 To $stringlen
    If StringIsInt(StringMid($filereadtoarray[$i], $j, 1)) = 1 Then
    $array[$i - 1][1] = StringStripWS(StringLeft($filereadtoarray[$i], $j - 1), 2)
    $array[$i - 1][2] = StringMid($filereadtoarray[$i], $j)
    ExitLoop
    Else
    $array[$i - 1][1] = $filereadtoarray[$i]
    EndIf
    Next
    Next
    _ArrayDisplay($array)

    [/autoit]
  • water:
    Kommentier doch bitte nicht jeden einzelnen Post. Sondern versuchs lieber besser.

    Für einen Kommentar dazu ist es mir heute einfach zu heiß ;)

  • Hey wow,
    danke erstmal für die große Resonanz auf meine Anfrage! :) Ich werde nun die verschiedenen Lösungsansetze abechecken und schauen welche meinen Anforderungen entspricht.

    EDIT:
    Also die Lösung von AndyTR funktioniert perfekt. Danke :) wenn noch was ist werd ich diesen Tread nochmal ausgraben. Bis dahin. Vielen dank @ all