using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
var l = new List<string> {"via caporale degli zuavi 278a , 78329","autostrada a1 km - 47"};
foreach (var t in l)
{
var rx = @"^(?!.*(?<!\p{L})km\b)(?:.*\D)?(\d{1,4})(?=\p{L}?\b)";
var match = Regex.Match(t, rx, RegexOptions.ECMAScript)?.Groups[1].Value;
if (!string.IsNullOrEmpty(match))
{
Console.WriteLine($"There is a match in '{t}': {match}");
}
else
{
Console.WriteLine($"There is no match in '{t}'.");
}
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UZXh0LlJlZ3VsYXJFeHByZXNzaW9uczsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQl2YXIgbCA9IG5ldyBMaXN0PHN0cmluZz4geyJ2aWEgY2Fwb3JhbGUgZGVnbGkgenVhdmkgMjc4YSAsIDc4MzI5IiwiYXV0b3N0cmFkYSBhMSBrbSAtIDQ3In07CgkJZm9yZWFjaCAodmFyIHQgaW4gbCkgCgkJewoJCQl2YXIgcnggPSBAIl4oPyEuKig/PCFccHtMfSlrbVxiKSg/Oi4qXEQpPyhcZHsxLDR9KSg/PVxwe0x9P1xiKSI7CgkJCXZhciBtYXRjaCA9IFJlZ2V4Lk1hdGNoKHQsIHJ4LCBSZWdleE9wdGlvbnMuRUNNQVNjcmlwdCk/Lkdyb3Vwc1sxXS5WYWx1ZTsKCQkJaWYgKCFzdHJpbmcuSXNOdWxsT3JFbXB0eShtYXRjaCkpCgkJCXsKCQkJCUNvbnNvbGUuV3JpdGVMaW5lKCQiVGhlcmUgaXMgYSBtYXRjaCBpbiAne3R9Jzoge21hdGNofSIpOwoJCQl9IAoJCQllbHNlCgkJCXsKCQkJCUNvbnNvbGUuV3JpdGVMaW5lKCQiVGhlcmUgaXMgbm8gbWF0Y2ggaW4gJ3t0fScuIik7CgkJCX0KCQl9Cgl9Cn0=