2013-07-03 117 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}) 
相關問題