2013-07-03 83 views
1

我想从完整地址中分隔姓名,城市,州,邮编和电话号码。我设法使用下面的代码分开zip。如何从地址中提取姓名和电话号码

String input = richTextBox1.Text; 

     Regex regex = new Regex(@"(\d{6})", 
      RegexOptions.Compiled | 
      RegexOptions.CultureInvariant); 

     Match match = regex.Match(input); 

     if (match.Success) 
      textBox2.Text = match.Groups[1].Value; 

邮政编码的位数没有变化,所以对我来说相当简单。但对于电话号码不。的数字发生变化,有时候空间会进入下面的例子。我对如何提取这种类型的电话号码完全困惑。

我尝试了以下代码的电话号码和“.star \ s.star”来提取名称,但它不工作。

 Regex regex1 = new Regex(@"\b\d{3}\s\d{2}\s\d{6}", 
      RegexOptions.Compiled | RegexOptions.CultureInvariant); 

     Match match1 = regex1.Match(input); 

     if (match1.Success) 
      textBox3.Text = match1.Groups[1].Value; 

     else 
     { 
      Regex regex2 = new Regex(@"\b\d{4}\s\d{3}\s\d{4}", 
      RegexOptions.Compiled | RegexOptions.CultureInvariant); 

      Match match2 = regex2.Match(input); 

      if (match2.Success) 
       textBox3.Text = match2.Groups[1].Value; 
     } 

样品地址:

H. 
Mithras Developers 
Tiruchendur Road, VM Chathiram PO, Radhapur, Tirunelveli, TN 628809 ‎ 
097 43 838122 ‎ 

编辑---

我终于想通了答案的电话。

@"(\d{3}\ \d{2}\ \d{6})", @"(\d{4}\ \d{3}\ \d{4})" 

请帮助我解压缩城市和州。我目前正在提取名称。如果我自己找到答案,我会更新这篇文章。

编辑---

我找到了提取名称的方法。

@"^(.*)", selecting the first line of the address. 

这个问题已经过去了。

+0

是电话号码总是在地址的最后一行吗? –

+0

也可以是xxx xx xxxxxx或xxxx xxx xxxx的形式,还有一种方法可以提取下一行,然后是A-Z \。 (提取名称)。谢谢您的帮助。 –

回答

0

方法提取的名称。

@"^(.*)", selecting the first line of the address. 

提取手机的方式。

@"(\d{3}\ \d{2}\ \d{6})", @"(\d{4}\ \d{3}\ \d{4})" 
1

尝试......

(\w+\s*\w+)\s+([\w\s]+),\s+([\w\s]+),\s+([\w\s]+),\s+([\w\s]+),\s*(\w{2}\s*\d+)\s*([\d\s]{9,13}) 
相关问题