Avatar billede decrypto Nybegynder
04. februar 2007 - 10:56 Der er 9 kommentarer

Omdanne en streng til en adresse

Jeg har en streng som er en adresse.

Strengen kunne se ud som følgende:

Roskildevej 65 2650 Albertslund el.
Roskildevej 65 Albertslund el.
Roskildevej 65 2650 el.
Roskildevej 2650 Albertslund etc.

Ideen er at have et regex udtryk der som minimum kan dele strengen op i to nemlig:

VejHusnr og PostNrBy:
VejHusnr = Roskildevej 65
PostNrBy = 2650 Albertslund

Den mere specificerede fire opdeling kunne være fedt, men jeg kan nøjes med to opdelingen.

Opdelingen i fire vil naturligvis således ud:
Vej = Roskildevej
HusNr = 65
PostNr = 2650
By = Albertslund
.....men det er ikke nøvendigt i mit tilfælde, selvom det kunne være fedt.

Jeg har ledt en del på nettet men uden held.

Jeg giver gode point.
Avatar billede esben85 Nybegynder
04. februar 2007 - 12:32 #1
vej:([A-z]*? )
husnr: ([0-9]*) ... hvis dette kun er bestående af tal
postnr: ([0-9]{4})
By: ([A-z]*?$)
Avatar billede decrypto Nybegynder
04. februar 2007 - 13:22 #2
husnr kan også bestå af alfanumerikse værdier: eksempel 25A, 22b, 1d etc
Avatar billede decrypto Nybegynder
04. februar 2007 - 13:30 #3
Desuden kan et bynavn også være 'København N' postnr kan være 3 el. 4 cifre
Avatar billede decrypto Nybegynder
04. februar 2007 - 14:06 #4
Kunne egentligt godt tænke mig hele udtrykket...
:-)
Avatar billede decrypto Nybegynder
04. februar 2007 - 14:20 #5
Jeg bruger Regulator til at teste mine udtryk.

Lige nu tester jeg med dette udtryk:
(?<vej>[A-z]*?)?(?<husNr>[0-9]*?)?(?<postNr>\d{3,4})?(?<by>[A-z]*?)

Giver mig kun postnr retur og ikke nogle af de andre.
Strengen jeg tester med:
"Roskildevej 65 2650 Albertslund"
Avatar billede decrypto Nybegynder
04. februar 2007 - 15:00 #6
Dette udtryk giver det ønskede i første omgang....men der er et mellemrum mellem udtrykket

(?<vej>[A-z]*?) (?<husNr>[0-9]+) (?<postNr>\d{3,4}) (?<by>[A-z]*?)$
              ^                ^                  ^
Når jeh skriver '?' så går får jeg ikke noget tilbage....

Testet det i regulator med strengen: "Roskildevej 65 2650 Albertslund" igen.
Avatar billede decrypto Nybegynder
04. februar 2007 - 15:01 #7
ok min '^' rog skævt ind her....men den skal placeres mellem mine gruperinger hvor der er et mellemrum.
Avatar billede esben85 Nybegynder
04. februar 2007 - 19:19 #8
Der kan let blive en hel del muligheder, eksempel

Niels Jernes vej 5b, 3sal TH DK-9220 Aalborg Ø

mellemrum i vejnavn, adskilt husnummer, osv. Skal disse adresser også kunne blive identificeret af udtrykket?
Kunne man ikke gribe det an ved at gå til kilden af adressen, for at begrænse variblerne.

Du kan evt prøve at kigge her.
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1161538&SiteID=1
Avatar billede decrypto Nybegynder
04. februar 2007 - 19:56 #9
He he det link du har sendt har jeg selv kigget en del på...
Men du har ret..... der er mange varianter på en adresse....

Problemet hos mig er, at jeg aldrig ved, hvordan adressen kan se ud....skal dog tage højde for de fleste versioner.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester