正则表达式:解析街道名称/号码

the*_*dev 3 .net c# regex parsing

C#/.NET 2.0

我需要在两个单独的值中解析包含街道名称和房子的字符串.

in: "Streetname 1a"         out:  "streetname"  "1a"
    "Street name 1a"              "street name" "1a"
    "Street name 1 a"             "street name" "1 a"
Run Code Online (Sandbox Code Playgroud)

我的第一选择是将字符串拆分,我找到了一个""字符,但这对第二种情况不起作用.

result[0] = trimmedInput.Substring(0, splitPosition).Trim();
result[1] = trimmedInput.Substring(splitPosition + 1).Trim();
Run Code Online (Sandbox Code Playgroud)

做这个的最好方式是什么?我可以使用正则表达式吗?

谢谢

Dyp*_*ppl 9

^(.+)\s(\S+)$ 应该做的伎俩

编辑:这将工作是门牌号码不能有空格.否则这个问题不能以编程方式解决,因为程序永远不会知道字符串标记的语义.

房子地址杂乱而且不一致.我使用地址数据,老实说,如果你没有标准化形式的数据,你基本上搞砸了.

^(.+)\s(\d+(\s*[^\d\s]+)*)$ 将覆盖更多的案例,但如果我看到一个案例,这样的模式就是一堆蠕虫.