myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Basistechnologien und allgemeine .NET-Klassen » Straße und Hausnummer trennen?
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Straße und Hausnummer trennen?

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
math55 math55 ist männlich
myCSharp.de-Mitglied

avatar-2253.png


Dabei seit: 15.03.2007
Beiträge: 314
Entwicklungsumgebung: Visual Studio 2008 Pro
Herkunft: Deutschland


math55 ist offline

Straße und Hausnummer trennen?

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

ich möchte die Straße und die Hausnummer trennen. Grundlegend habe ichs auch, aber recht umständlich. Ich schaue zuerst, ob ein Punkt drin ist, wenn ja, splitte ich am Punkt. Das ist einfach. Dann kommt der Teil mit Leerzeichen. Hier habe ich Probleme.

Ich schaue zuerst nach dem letzten Leerzeichen uns splitte dann dort. Das Klappt aber nicht für Muster Gasse 1 a, da dann die Hausnummer das "a" wäre. Wie könnte ich vorgehen?

Danke smile
11.09.2008 15:34 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
lp8266 lp8266 ist männlich
myCSharp.de-Mitglied

avatar-2607.jpg


Dabei seit: 05.05.2008
Beiträge: 16
Entwicklungsumgebung: Visual Studio 2008
Herkunft: Leipzig


lp8266 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Such mal nach Regex (regular expression), dass könnte dir helfen.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von lp8266 am 11.09.2008 15:37.

11.09.2008 15:36 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
math55 math55 ist männlich
myCSharp.de-Mitglied

avatar-2253.png


Dabei seit: 15.03.2007
Beiträge: 314
Entwicklungsumgebung: Visual Studio 2008 Pro
Herkunft: Deutschland

Themenstarter Thema begonnen von math55

math55 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Dachte ich auch dran, aber wie genau?

Danke
11.09.2008 15:39 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
7.e.Q 7.e.Q ist männlich
myCSharp.de-Mitglied

avatar-3402.jpg


Dabei seit: 06.10.2004
Beiträge: 925
Entwicklungsumgebung: Visual Studio .NET 2010
Herkunft: Scheeßel


7.e.Q ist offline Füge 7.e.Q Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ich geh mal davon aus, daß zwischen Straße und Hausnummer mindestens eine Leerstelle liegt...

Code:
1:
(?<strasse>.*?)\s+(?<hausnr>\d+\s*.*)

... und ich geh mal davon aus, daß du die Verwendung regulärer Ausdrücke in C# nicht kennst:

C#-Code:
            Match tMatch = Regex.Match(t_AdresseStrHNr, @"(?<strasse>.*?)\s+(?<hausnr>\d+\s*.*)");

            if(tMatch != null)
            {
                        string t_Strasse = tMatch.Groups["strasse"].Value;
                        string t_HausNr = tMatch.Groups["hausnr"].Value;
            }

t_AdresseStrHNr musst du natürlich vorher entsprechend füllen. Sehr beispielhafter Code.

Eigentlich ist es unsauber, t_Strasse und t_HausNr in dem if-Block anzulegen... man kann natürlich auch, wenn tMatch == null ist, irgendwie aus der Funktion aussteigen... naja, soll ja auch nur das Prinzip verdeutlichen...

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von 7.e.Q am 11.09.2008 15:49.

11.09.2008 15:42 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
BerndFfm BerndFfm ist männlich
myCSharp.de-Team

avatar-3299.jpg


Dabei seit: 20.01.2006
Beiträge: 3.604
Entwicklungsumgebung: Visual Studio 2015
Herkunft: Frankfurt a.M.


BerndFfm ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Folgende Adresse gibt es :

Hauptstraße 17
Hauptstraße 17a
Hauptstraße 17 b
Hauptstraße 17 B1
Hauptstr.17
Hauptstraße 10 App. 123
Hauptstraße 17 1.Stock
Hauptstraße 17 2. Stock
An der Schleuse 18

Viel Spass beim Herausfinden was nun die Hausnummer ist.

Grüße Bernd

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von BerndFfm am 11.09.2008 16:11.

11.09.2008 16:00 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
math55 math55 ist männlich
myCSharp.de-Mitglied

avatar-2253.png


Dabei seit: 15.03.2007
Beiträge: 314
Entwicklungsumgebung: Visual Studio 2008 Pro
Herkunft: Deutschland

Themenstarter Thema begonnen von math55

math55 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Funktioniert bestens! Danke smile
11.09.2008 16:04 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
7.e.Q 7.e.Q ist männlich
myCSharp.de-Mitglied

avatar-3402.jpg


Dabei seit: 06.10.2004
Beiträge: 925
Entwicklungsumgebung: Visual Studio .NET 2010
Herkunft: Scheeßel


7.e.Q ist offline Füge 7.e.Q Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Also meine Variante funktioniert mit

Hauptstraße 17
Hauptstraße 17a
Hauptstraße 17 b
Hauptstraße 17 B1
An der Schleuse 18

soweit einwandfrei... man könnte das Muster sicherlich entsprechend der anderen Varianten anpassen.
11.09.2008 16:32 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
BerndFfm BerndFfm ist männlich
myCSharp.de-Team

avatar-3299.jpg


Dabei seit: 20.01.2006
Beiträge: 3.604
Entwicklungsumgebung: Visual Studio 2015
Herkunft: Frankfurt a.M.


BerndFfm ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo Seven e.Q.,

Klasse !

Werde ich auch gleich mal testen.

Danke großes Grinsen

Grüße Bernd
11.09.2008 16:40 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
robert.wachtel robert.wachtel ist männlich
myCSharp.de-Mitglied

avatar-2287.gif


Dabei seit: 25.09.2006
Beiträge: 328
Entwicklungsumgebung: VS 2008 & RAD Studio 2010 Pro.
Herkunft: Köln


robert.wachtel ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von BerndFfm:
Viel Spass beim Herausfinden was nun die Hausnummer ist. [...]

Da habe ich noch ein paar nette:

Sallweg 1-3a Haus 1 R8
An die 2. Scharte
M3

Augenzwinkern

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von robert.wachtel am 11.09.2008 16:44.

11.09.2008 16:43 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
7.e.Q 7.e.Q ist männlich
myCSharp.de-Mitglied

avatar-3402.jpg


Dabei seit: 06.10.2004
Beiträge: 925
Entwicklungsumgebung: Visual Studio .NET 2010
Herkunft: Scheeßel


7.e.Q ist offline Füge 7.e.Q Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Code:
1:
(?<strasse>.*?)[\s+\.](?<hausnr>\d+\s*.*)

funktioniert nun auch mit

Hauptstr. 17
Hauptstr.17
Hauptstr. 17 b
Hauptstr. 17b
Hauptstr.17 b
Hauptstr.17b
Haupt Str. 17
Haupt Str.17
Haupt Str. 17b
und so weiter...

Wobei der Punkt dann nicht mehr zum Straßennamen gehört.

Code:
1:
(?<strasse>.*?\.*)\s*(?<hausnr>\d+\s*.*)

damit gehört der Punkt dann auch zum Straßennamen.

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von 7.e.Q am 11.09.2008 16:54.

11.09.2008 16:51 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
BerndFfm BerndFfm ist männlich
myCSharp.de-Team

avatar-3299.jpg


Dabei seit: 20.01.2006
Beiträge: 3.604
Entwicklungsumgebung: Visual Studio 2015
Herkunft: Frankfurt a.M.


BerndFfm ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Das grenzt ja schon an AI (Künstliche Intelligenz).

;-)

Grüße Bernd
11.09.2008 17:16 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
7.e.Q 7.e.Q ist männlich
myCSharp.de-Mitglied

avatar-3402.jpg


Dabei seit: 06.10.2004
Beiträge: 925
Entwicklungsumgebung: Visual Studio .NET 2010
Herkunft: Scheeßel


7.e.Q ist offline Füge 7.e.Q Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von BerndFfm:
Das grenzt ja schon an AI (Künstliche Intelligenz).

;-)

Grüße Bernd

Nicht wahr?! Augenzwinkern großes Grinsen
11.09.2008 17:17 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
juetho juetho ist männlich
myCSharp.de-Mitglied

Dabei seit: 23.10.2006
Beiträge: 3.331
Entwicklungsumgebung: #D NET 2.0 / Firebird (Win10)
Herkunft: Berlin


juetho ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Noch ein paar Vorschläge zur Erweiterung der KI:

Straße 523 Nr. 18 oder
Str. 523 Haus 18
Straße F 4 oder
Straße F Nr. 4
Str. d. 17. Juni 135
M3 (von Robert Wachtel) mit Hausnummer als:
M3, 18 oder
M3 Nr. 18 oder
M 3 Haus 18
Weg 0 Nr. 18 (gibt es wirklich mit Null)
Weg B Nr. 18

Gruß Jürgen
11.09.2008 17:56 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegen mehr als 11 Jahre.
kruegge
myCSharp.de-Mitglied

Dabei seit: 25.04.2020
Beiträge: 3


kruegge ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ich habe es selbst versucht umzudrehen für Ausländische Adressen aber es will nicht ganz passen....

Ich setze bei mir vorraus das die Hausnummer immer kürzer ist als die Strasse und wenn das nicht so ist würde ich das regex gerne umdrehen, komme aber nicht ganz zum erfolg.

Code:
1:
(?<hausnr>\d+\.*)\s*(?<strasse>.*?\.*.*)

zb Frankreich, USA usw haben die Hausnummer oft vorne...
Wer kann helfen?
LG Kruegge
25.04.2020 09:53 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
7.e.Q 7.e.Q ist männlich
myCSharp.de-Mitglied

avatar-3402.jpg


Dabei seit: 06.10.2004
Beiträge: 925
Entwicklungsumgebung: Visual Studio .NET 2010
Herkunft: Scheeßel


7.e.Q ist offline Füge 7.e.Q Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Uaaah, Zombiethreadapokalypse! :-D

Ich bin mir nicht sicher, ob's eine on-fits-all Lösung dafür gibt. Aber wahrscheinlich irgendwas mit look-ahead. Ich bin auch schon eine Weile raus aus diesem Thema. So... ca... 12 Jahre.
25.04.2020 11:07 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
kruegge
myCSharp.de-Mitglied

Dabei seit: 25.04.2020
Beiträge: 3


kruegge ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

muss nicht all in one sein, mir für die ober lösung schon reichen, wenn es sauebr funktioniert ds die Hausnummer zuerst steht...
25.04.2020 11:47 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 14.219
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ich kann keine Frage in Deinen Beiträgen erkennen. Sollen wir Dir den Regex anpassen, oder wie?

Wenn ich  Google-Suche nach regex us address zeigt Google sofort folgenden Vorschlag vor:

Code:
1:
^\d{1,6}\040([A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,})$|^\d{1,6}\040([A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,})$|^\d{1,6}\040([A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,}\040[A-Z]{1}[a-z]{1,})$

Alternativ  regexlib - Street
25.04.2020 22:00 Beiträge des Benutzers | zu Buddylist hinzufügen
kruegge
myCSharp.de-Mitglied

Dabei seit: 25.04.2020
Beiträge: 3


kruegge ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

ja ds wäre sehr hilfreich wenn du mir helfen könntest deinen regex umzudrehen, einfach nur das die kombinationen funktuonieren, wenn die Hausnummer vorne steht., weil das auf viele Länder zutrifft und bei meinem versuch klappt das nicht 100%ig.
26.04.2020 08:14 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
T-Virus T-Virus ist männlich
myCSharp.de-Mitglied

Dabei seit: 17.04.2008
Beiträge: 1.602
Entwicklungsumgebung: Visual Studio, Codeblocks, Edi
Herkunft: Nordhausen, Nörten-Hardenberg


T-Virus ist offline Füge T-Virus Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Der RegEx sucht bereits am Anfang nach der Hausnummer, daher auch der hinweis auf die US Suche von Abt.

Wenn du einen spezifischen RegEx suchst, dann such bei Google selbst.
Für eine saubere Umsetzung müsstest du auch pro Land den richtigen RegEx nutzen, da einfach nach Hausnummer vorne oder hinten, kein sinnvoller Ansatz ist um die Adressen richtig zu parsen.

T-Virus
26.04.2020 11:12 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 12 Jahre.
Der letzte Beitrag ist älter als 5 Monate.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 30.09.2020 20:02