Separate the house number from the street name: Difference between revisions

Added 11l
(Realize in F#)
(Added 11l)
Line 45:
 
;Reference [https://www.grcdi.nl/gsb/netherlands.html#H7850D12EA45D65E283BB536CBC7222059B48448A03BA2AA2ATheA20NetherlandsA20A2DA20A5BA5BAddressesA5DA5DA2AA2A00100400A01801B01E021024030033036039 The Netherlands - Addresses]
 
=={{header|11l}}==
{{trans|Nim}}
 
<lang 11l>F separateHouseNumber(address)
V fields = address.split_py()
V last = fields.last
V penult = fields[(len)-2]
V house = ‘’
I last[0].is_digit()
V isdig = penult[0].is_digit()
I fields.len > 2 & isdig & !penult.starts_with(‘194’)
house = penult‘ ’last
E
house = last
E I fields.len > 2
house = penult‘ ’last
R (address[0 .< address.len - house.len].rtrim(‘ ’), house)
 
V Addresses = [‘Plataanstraat 5’,
‘Straat 12’,
‘Straat 12 II’,
‘Dr. J. Straat 12’,
‘Dr. J. Straat 12 a’,
‘Dr. J. Straat 12-14’,
‘Laan 1940 - 1945 37’,
‘Plein 1940 2’,
‘1213-laan 11’,
‘16 april 1944 Pad 1’,
‘1e Kruisweg 36’,
‘Laan 1940-'45 66’,
‘Laan '40-'45’,
‘Langeloerduinen 3 46’,
‘Marienwaerdt 2e Dreef 2’,
‘Provincialeweg N205 1’,
‘Rivium 2e Straat 59.’,
‘Nieuwe gracht 20rd’,
‘Nieuwe gracht 20rd 2’,
‘Nieuwe gracht 20zw /2’,
‘Nieuwe gracht 20zw/3’,
‘Nieuwe gracht 20 zw/4’,
‘Bahnhofstr. 4’,
‘Wertstr. 10’,
‘Lindenhof 1’,
‘Nordesch 20’,
‘Weilstr. 6’,
‘Harthauer Weg 2’,
‘Mainaustr. 49’,
‘August-Horch-Str. 3’,
‘Marktplatz 31’,
‘Schmidener Weg 3’,
‘Karl-Weysser-Str. 6’]
 
print(‘ Street House Number’)
print(‘--------------------- ------------’)
L(address) Addresses
V (street, house) = separateHouseNumber(address)
print(street.rjust(22)‘ ’(I !house.empty {house} E ‘(none)’))</lang>
 
{{out}}
<pre>
Street House Number
--------------------- ------------
Plataanstraat 5
Straat 12
Straat 12 II
Dr. J. Straat 12
Dr. J. Straat 12 a
Dr. J. Straat 12-14
Laan 1940 - 1945 37
Plein 1940 2
1213-laan 11
16 april 1944 Pad 1
1e Kruisweg 36
Laan 1940-'45 66
Laan '40-'45 (none)
Langeloerduinen 3 46
Marienwaerdt 2e Dreef 2
Provincialeweg N205 1
Rivium 2e Straat 59.
Nieuwe gracht 20rd
Nieuwe gracht 20rd 2
Nieuwe gracht 20zw /2
Nieuwe gracht 20zw/3
Nieuwe gracht 20 zw/4
Bahnhofstr. 4
Wertstr. 10
Lindenhof 1
Nordesch 20
Weilstr. 6
Harthauer Weg 2
Mainaustr. 49
August-Horch-Str. 3
Marktplatz 31
Schmidener Weg 3
Karl-Weysser-Str. 6
</pre>
 
=={{header|EchoLisp}}==
1,481

edits