C# 4.0 用于解析邮政地址的正则表达式?
你好,我是编程新手。我有以下格式的地址,我想把门牌号和街道号分开C# 4.0 用于解析邮政地址的正则表达式?,c#-4.0,C# 4.0,你好,我是编程新手。我有以下格式的地址,我想把门牌号和街道号分开 house no.966 s# 70 Kashmir road Peshawar road Rawalpindi house no.970 st. # 43 Darian Kalar saeedan H# 110 Street No.35 Dhowk kala Rwp h# 124 Street No.73 G-11/3 ISB h no.423 St. No.23 Chan chirag Rawat H No.437
house no.966 s# 70 Kashmir road Peshawar road Rawalpindi
house no.970 st. # 43 Darian Kalar saeedan
H# 110 Street No.35 Dhowk kala Rwp
h# 124 Street No.73 G-11/3 ISB
h no.423 St. No.23 Chan chirag Rawat
H No.437 st. # 61 Chaklal scheme 3 RAWALPINDI
关于这方面有什么帮助建议吗?看起来您只是按照两组数字出现的顺序查找它们,所以您可以这样做:
void Main()
{
var addresses = new string[] {
"house no.966 s# 70 Kashmir road Peshawar road Rawalpindi",
"house no.970 st. # 43 Darian Kalar saeedan",
"H# 110 Street No.35 Dhowk kala Rwp",
"h# 124 Street No.73 G-11/3 ISB",
"h no.423 St. No.23 Chan chirag Rawat",
"H No.437 st. # 61 Chaklal scheme 3 RAWALPINDI"
};
Regex houseAndStreet = new Regex(@"(\d+).+?(\d+)");
foreach (string address in addresses)
{
Match match = houseAndStreet.Match(address);
string house = match.Groups[1].Value;
string street = match.Groups[2].Value;
Console.WriteLine ("House = {0}, Street = {1}", house, street);
}
}
您可能希望添加一些错误检查以使其更加健壮,但这是基本思想
正则表达式分解如下:
组中的一个或多个数字(\d+)
对任何其他字符的非贪婪搜索+?
另一组中的一个或多个数字(\d+)
匹配。组[0]
。但我原以为原始数据会更有用。