Dit lijkt me (na je vakantie evt.

) iets voor Perl (PHP), als je ook de lastige gevallen wilt kunnen pakken. Dan is de taak het splitten in Straat, Huisnummer, Toevoeging. (Zoals ACM al zei, reguliere expressie.) Zoals de genoemde "Kerkstraat 13b 2 hoog" of "Plein 1940-1945 10".
Of je eigen "Kerkstraat 13 huis" of "1e Helmerstraat 12 2hoog".
Hier werd er ook al over gesproken.
Je zou een expressie voor huisnummer en toevoeging kunnen definiëren. Dan is het stukje ervoor de straat, en het stukje zelf splits je op de spatie. Is die er niet dan is er geen toevoeging.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| $adres = "1e Helmerstraat 12a 2hoog"; # of bv. $adres = "Plein 1940-1945 10";
# nummer+toevoeging: spatie, dan getal en eventueel een teken, dan eventueel
# nog een spatie met een teken - dit alles aan het eind van de string
$expr = '\s\d+\w*\s*\w+$';
($straat,$temp) = split(/$expr/,$adres);
($temp,$rest) = split(/$straat/,$adres);
$rest =~ s/ //; # spatie aan begin weghalen
($nummer,$toevoeging) = split(/ /,$rest);
print "straat = $straat\n";
print "nummer = $nummer\n";
print "toevoeging = $toevoeging\n"; |
't Is misschien meer dan dat huisnummer 13 wat je wilde, maar zo kun je de databaserecords netjes splitten als je wilt. Maar het schijnt altijd op talloze manieren te kunnen, je zou ook de reguliere expressie voor het huisnummer kunnen maken; en straat ervoor en toevoeging erna pakken. (Er zullen vast wel weer addressen bestaan waarop het niet werkt.)
[
Voor 5% gewijzigd door
Mick op 16-07-2005 01:00
]