C#/.NET 2.0
我需要解析一个字符串,其中包含街道名称和房屋编号的两个独立值。
in: "Streetname 1a" out: "streetname" "1a"
"Street name 1a" "street name" "1a"
"Street name 1 a" "street name" "1 a"
我的第一个选择是在我发现 ""字符的地方拆分字符串,但这不适用于第二种情况。
result[0] = trimmedInput.Substring(0, splitPosition).Trim();
result[1] = trimmedInput.Substring(splitPosition + 1).Trim();
最好的方法是什么?我可以使用正则表达式吗?
谢谢
最佳答案
^(.+)\s(\S+)$
应该可以解决问题
编辑:如果门牌号中不能有空格,这将起作用。否则这个问题无法以编程方式解决,因为程序永远不会知道字符串标记的语义。
房屋地址凌乱且不一致。我处理过地址数据,老实说,如果您没有规范化形式的数据,那您基本上就完蛋了。
^(.+)\s(\d+(\s*[^\d\s]+)*)$
将涵盖更多情况,但像这样的模式是一 jar 如果我见过蠕虫的话。
关于c# - 正则表达式:解析街道名称/号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5014537/