Regex por dividir um endereço alemão em suas partes
Boa noite
Estou tentando dividir as partes de uma cadeia de endereços alemã em suas partes via Java. Alguém conhece um regex ou uma biblioteca para fazer isso? Para dividir da seguinte forma:
Name der Straße 25a 88489 Teststadt
parName der Straße|25a|88489|Teststadt
o
Teststr. 3 88489 Beispielort (Großer Kreis)
parTeststr.|3|88489|Beispielort (Großer Kreis)
Seria perfeito se o sistema / regex ainda funcionasse se partes como o CEP ou a cidade estivessem ausente
Existe algum regex ou biblioteca com a qual eu possa arquivar iss
EDIT: regra para endereços alemães:
Street: caracteres, números e espaços
House no: Number e quaisquer caracteres (ou espaço) até uma série de números (zip) (pelo menos nesses exemplos)
Zip: 5 dígitos
Lugar ou Cidade: O resto talvez também com espaços, vírgulas ou chaves