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

Realize in F#
(→‎{{header|jq}}: show how the Scala regex could be adapted)
(Realize in F#)
Line 43:
Schmidener Weg 3
Karl-Weysser-Str. 6</pre>
 
;Reference [https://www.grcdi.nl/gsb/netherlands.html#H7850D12EA45D65E283BB536CBC7222059B48448A03BA2AA2ATheA20NetherlandsA20A2DA20A5BA5BAddressesA5DA5DA2AA2A00100400A01801B01E021024030033036039 The Netherlands - Addresses]
 
=={{header|EchoLisp}}==
Line 148 ⟶ 150:
[32] Schmidener Weg 3
[33] Karl-Weysser-Str. 6
</pre>
 
=={{header|F_Sharp|F#}}==
<lang fsharp>
// Seperate house number and street in Dutch addresses. Nigel Galloway: September 23rd., 2021
let fN g=let n=System.Text.RegularExpressions.Regex.Match(g,@"(\s\d+[-/]\d+)|(\s(?!1940|1945)\d+[a-zI. /]*\d*)$") in if n.Success then Some(g.[0..n.Index],n.Value) else None
let td=["Plataanstraat 5";"Straat 12";"Straat 12 II";"Straat 1940 II";"Dr. J. Straat 40";"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";"Langeloërduinen 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"]
printfn " Street Number\n ______ ______"
td|>List.iter(fun g->match fN g with Some(n,g)->printfn $"%27s{n.Trim()} %s{g}" |_->printfn $"FAILED %s{g}")
</lang>
{{out}}
<pre>
Street Number
______ ______
Plataanstraat 5
Straat 12
Straat 12 II
FAILED Straat 1940 II
Dr. J. Straat 40
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
FAILED Laan '40-'45
LangeloÙrduinen 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>
 
2,172

edits