我正在尝试将姓名,城市,州,邮编和电话与完整地址分开。我设法使用以下代码分隔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
EDIT ---
我终于找到了电话的答案。
@"(\d{3}\ \d{2}\ \d{6})", @"(\d{4}\ \d{3}\ \d{4})"
请帮我提取城市和州。我目前正致力于提取名称。如果我自己找到答案,我会更新这篇文章。
EDIT ---
我找到了提取名字的方法。
@"^(.*)", selecting the first line of the address.
问题已经结束了。
答案 0 :(得分: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})
答案 1 :(得分:0)
提取名称的方法。
@"^(.*)", selecting the first line of the address.
提取手机的方法。
@"(\d{3}\ \d{2}\ \d{6})", @"(\d{4}\ \d{3}\ \d{4})"