Wie kann ich die Hausnummer aus einem Straßen-Feld (street) extrahieren?

Manchmal bekommt z.B. bei Auftragsdaten (Bestellungen) Straßenname (street) und Hausnummer (housenumber) zusammen in einem Feld steht.
Möchte man nun die Hausnummer in ein separates Feld schreiben (weil z.B. das Zielsystem das so erwartet), steht man vor dem Problem, die Hausnummer zu extrahieren.
Die perfekte Lösung dafür gibt es nicht, weil die Hausnummer je nach Land an verschiedenen stellen stehen kann (z.B. in Frankreich am Anfang, in Deutschland am Ende).

Der folgende Ansatz wäre zumindestens eine pragmatische Möglichkeit:

Man kann einen regulären Ausdruck (regex) mit der Freemarker Funktion matches verwenden, um die erste vorkommende Zahl (die Hausnummer) zu extrahieren und diese in eine neue Spalte schreiben.

Beispiel Straße: 22 RUE DU COMMERCE

HTML

<#assign firstNumber = result['street']!?matches("(\\d+)")>
<#if (firstNumber?? && firstNumber?size > 0)>${firstNumber[0]}</#if>

Output: 22

Dieses Beispiel können Sie auch ausprobieren.

Alternativen:

Straße mit Fallback Originalwert:

<#assign res = Adresse!?matches("([^0-9]+)[0-9]*[A-Za-z ]*")><#if res><#list res as m>${m?groups[1]}</#list><#else>${Adresse}</#if>

Hausnummer (Fallback Leerzeichen)

<#assign res = Adresse!?matches("[^0-9]+([0-9]+[A-Za-z ]*)")><#if res><#list res as m>${m?groups[1]}</#list><#else> </#if>

Beispiele:

Straße & Hausnummer Ergebnis Straße Ergebnis Hausnummer
RUE DU COMMERCE 22 RUE DU COMMERCE 22
RUE DU COMMERCE 22 A RUE DU COMMERCE 22 A
RUE DU COMMERCE 22-25 RUE DU COMMERCE 22-25 [Leerzeichen]
22 RUE DU COMMERCE 22 RUE DU COMMERCE [Leerzeichen]

Adressen mit Hausnummer vor der Straße (z.B. FR)

Straße mit Fallback Originalwert:

<#assign res = Adresse!?matches("[0-9]*[A-Za-z]*([^0-9]+)")><#if res><#list res as m>${m?groups[1]}</#list><#else>${Adresse}</#if>

Hausnummer (Fallback Leerzeichen)

<#assign res = Adresse!!?matches("([0-9]+[A-Za-z]*)[^0-9]*")><#if res><#list res as m>${m?groups[1]}</#list><#else> </#if>

Beispiele:

Straße & Hausnummer Ergebnis Straße Ergebnis Hausnummer
22 RUE DU COMMERCE RUE DU COMMERCE 22
22a RUE DU COMMERCE A RUE DU COMMERCE 22
RUE DU COMMERCE 22 RUE DU COMMERCE 22 [Leerzeichen]