Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从地址中提取邮政编码_C#_.net_Postal Code - Fatal编程技术网

C# 从地址中提取邮政编码

C# 从地址中提取邮政编码,c#,.net,postal-code,C#,.net,Postal Code,我正在寻找一个用c#从地址中提取邮政编码信息的解决方案 下列国家的邮政编码 Canada,US,Germany,UK,Turkey,France,Pakistan,India,Italy. 地址可以是这样的 188 pleasant street, new minas, Nova Scotia b2p 6r6, Canada. 或 巴基斯坦卡拉奇市DHA 3区109 A,邮编75600 我想要的:我想要提取任何与城市或国家名称相邻的字母数字。但在为其创建正则表达式时遇到困难我认为您可以假设地

我正在寻找一个用c#从地址中提取邮政编码信息的解决方案

下列国家的邮政编码

Canada,US,Germany,UK,Turkey,France,Pakistan,India,Italy.
地址可以是这样的

188 pleasant street, new minas, Nova Scotia b2p 6r6, Canada.
或 巴基斯坦卡拉奇市DHA 3区109 A,邮编75600


我想要的:我想要提取任何与城市或国家名称相邻的字母数字。但在为其创建正则表达式时遇到困难

我认为您可以假设地址中的一般规则,即国家是最后一个,城市或州在其之前,因此邮政编码可以放置在城市或州和国家之间,并且如您在示例中所述,“”用作分隔符,因此可以如下所示:

    private string GetPostCode(string address )
    {
        string result = string.Empty;

        string[] list = address.Split(',');
        list.Reverse();
        foreach (var item in list)
        {
            // if item contains numeric postcode 
            Regex re = new Regex(@"\d+");
            Match m = re.Match(item);
            result = m.Value;
            if (!string.IsNullOrEmpty(result))
                break;
        }

        return result;
    }

我希望这会有所帮助。

我认为,您在地址中假设国家是最后一个,城市或州在前面是合理的,因此邮政编码可以放在城市或州和国家之间,正如您在示例中所述,使用“,”作为分隔符,因此可以如下所示:

    private string GetPostCode(string address )
    {
        string result = string.Empty;

        string[] list = address.Split(',');
        list.Reverse();
        foreach (var item in list)
        {
            // if item contains numeric postcode 
            Regex re = new Regex(@"\d+");
            Match m = re.Match(item);
            result = m.Value;
            if (!string.IsNullOrEmpty(result))
                break;
        }

        return result;
    }

我希望这会有帮助。

这是一项非常开放的任务。你必须遵循一些特定的格式。因为如果地址中有两个数字字符串(比如street是一个数字),会发生什么。因此,有两种选择是可能的:

  • 地址总是采用特定的格式,您知道实际的格式
  • 拉链的长度总是给定的
在这两种情况下,正则表达式将引导您找到解决方案。 -对于第一个示例,假设邮政编码是按给定顺序排列的(在原始示例中假设为“6r6”),可以使用以下正则表达式模式:“(\s+\,?\w+$” -对于第二种情况,假设邮政编码是一个5位以上的数字,位于第一个“,”之后,那么可以使用以下模式来提取它:“(,.*)+(\d{5})”。第二组是比赛中的邮政编码

以下是您可以使用的代码: 公共静态字符串GetSingleMatch(字符串地址、字符串模式、int组=0) { 返回新的正则表达式(pattern,RegexOptions.IgnoreCase).Match(address).Groups[group].Value; }


“group”可选参数表示包含邮政编码的正则表达式组。

这是一项非常开放的任务。你必须遵循一些特定的格式。因为如果地址中有两个数字字符串(比如street是一个数字),会发生什么。因此,有两种选择是可能的:

  • 地址总是采用特定的格式,您知道实际的格式
  • 拉链的长度总是给定的
在这两种情况下,正则表达式将引导您找到解决方案。 -对于第一个示例,假设邮政编码是按给定顺序排列的(在原始示例中假设为“6r6”),可以使用以下正则表达式模式:“(\s+\,?\w+$” -对于第二种情况,假设邮政编码是一个5位以上的数字,位于第一个“,”之后,那么可以使用以下模式来提取它:“(,.*)+(\d{5})”。第二组是比赛中的邮政编码

以下是您可以使用的代码: 公共静态字符串GetSingleMatch(字符串地址、字符串模式、int组=0) { 返回新的正则表达式(pattern,RegexOptions.IgnoreCase).Match(address).Groups[group].Value; }


“group”可选参数表示包含邮政编码的regex组。

如果您显示您的代码、输入内容、输出内容以及出现的问题,人们将更容易为您提供帮助。与论坛网站不同,我们不使用“谢谢”或“感谢任何帮助”或签名。看见“这听起来像是一件很有价值的事情。在我看来,可能已经有人写了这篇文章,并把它卖掉了。他们甚至可能有技术支持。当有人已经比你做得更好的时候,你为什么还要自己做这件事呢?@salniro是的。我有个主意。我想提取任何与城市或国家名称相邻的字母数字。但是,如果你在为它创建正则表达式时遇到困难,那么这篇文章可能会帮助你。如果你展示你的代码,输入是什么,输出是什么,出了什么问题,人们会更容易帮助你。与论坛网站不同,我们不使用“谢谢”或“感谢任何帮助”或签名。看见“这听起来像是一件很有价值的事情。在我看来,可能已经有人写了这篇文章,并把它卖掉了。他们甚至可能有技术支持。当有人已经比你做得更好的时候,你为什么还要自己做这件事呢?@salniro是的。我有个主意。我想提取任何与城市或国家名称相邻的字母数字。但是为它创建正则表达式有困难这篇文章可能会帮助你,但这不是答案。您可能应该告诉正则表达式模式或其他东西。@KaushikKishore:代码已更新。但我仍然不想写精确的代码,我只是想给出一个建议。谢谢你的评论。这不是答案。您可能应该告诉正则表达式模式或其他东西。@KaushikKishore:代码已更新。但我仍然不想写精确的代码,我只是想给出一个建议。谢谢你的评论。