using System.Text.RegularExpressions;
public static void Main()
string[] hausnummern = {"27a-29", "10-11B", "5", "5a", "10b", "200d", "23c", "256", "184a - 186c", "98 b - "};
WriteMatches(hausnummern);
public static void WriteMatches(string[] inputs){
foreach(var input in inputs){
var hn = input.Replace(" ", "");
var matches = Regex.Match(hn, @"([1-9][0-9]{0,3})?([a-zA-Z])?(\s*-\s*)?([1-9]{0,4})?([a-zA-Z])?").Groups;
Console.WriteLine("HN: "+ hn);
for(var i = 1; i<matches.Count; i++){
var match = matches[i].ToString();
var gruppenname = i == 1 ? "Hausnummer von" : i == 2 ? "Ergänzung von" : i == 3 ? " - " : i == 4 ? "Hausnummer bis" : "Ergänzung bis";
Console.WriteLine(" match[" + i + "] (" + gruppenname + "): " + match);