C# 需要正则表达式帮助从字符串中提取邮政编码吗

C# 需要正则表达式帮助从字符串中提取邮政编码吗,c#,regex,C#,Regex,我需要从字符串中提取邮政编码。字符串如下所示: Sandviksveien 184, 1300 Sandvika Regex pattern = new Regex(", [0..9]{4} "); string str = "Sandviksveien 184, 1300 Sandvika"; string[] substring = pattern.Split(str); lblMigrate.Text = substring[1].ToString(); 如何使用regex提取邮政编码

我需要从字符串中提取邮政编码。字符串如下所示:

Sandviksveien 184, 1300 Sandvika
Regex pattern = new Regex(", [0..9]{4} ");
string str = "Sandviksveien 184, 1300 Sandvika";
string[] substring = pattern.Split(str);
lblMigrate.Text = substring[1].ToString();
如何使用regex提取邮政编码? 在上面的字符串中,邮政编码为1300

我在路上试过这样的东西:

Sandviksveien 184, 1300 Sandvika
Regex pattern = new Regex(", [0..9]{4} ");
string str = "Sandviksveien 184, 1300 Sandvika";
string[] substring = pattern.Split(str);
lblMigrate.Text = substring[1].ToString();

但这不起作用。

我认为您正在寻找可以使用正则表达式进行分组的方法

例如

Regex.Match(input, ", (?<zipcode>[0..9]{4}) ").Groups["zipcode"].Value;
Regex.Match(输入,,(?[0..9]{4}).Groups[“zipcode”].Value;

您可能需要对此进行一些修改,因为我的内存不足…

这应该可以做到:

,\s(\d{4})

下面是如何使用它的一个简单示例:

using System;
using System.Text.RegularExpressions;

class Test
{
    static void Main()
    {
        String input = "Sandviksveien 184, 1300 Sandvika";

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

        Match match = regex.Match(input);

        if (match.Success)
            Console.WriteLine(match.Groups[1].Value);
    }
}
试试这个:

var strs = new List<string> { 
"ffsf 324, 3480 hello",
"abcd 123, 1234 hello",
"abcd 124, 1235 hello",
"abcd 125, 1235 hello"
};

Regex r = new Regex(@",\s\d{4}");

foreach (var item in strs)
{
    var m = r.Match(item);
    if (m.Success)
    {
       Console.WriteLine("Found: {0} in string {1}", m.Value.Substring(2), item);
    }
}
var strs=新列表{
“FFSF3243480你好”,
“您好”,
“您好”,
“你好”
};
正则表达式r=newregex(@“,\s\d{4}”);
foreach(strs中的var项目)
{
var m=r.匹配(项目);
如果(m.成功)
{
WriteLine(“在字符串{1}中找到:{0}”,m.Value.Substring(2),item);
}
}

Ooh,看起来这是可行的:)首先需要更多的测试:)