c正则表达式查找并提取给定长度的个数

本文关键字:正则表达式 查找 提取 | 更新日期: 2023-09-27 18:21:50

我有一个字符串,例如:

"2015年12月11日:Liefertermin 71994:2015年11月30日->2015年1月27日"

我想提取子串71994,它将始终是一个5位数的

我尝试了以下操作,但没有成功:

 private string FindDispo_InInfo()
    {
        Regex pattern = new Regex("^[0-9]{5,5}$");
        Match match = pattern.Match(textBox1.Text);
        string stDispo = match.Groups[0].Value;
        return stDispo;
    }

c正则表达式查找并提取给定长度的个数

用单词边界'b替换锚点^$,并使用逐字逐句的字符串文字:

Regex pattern = new Regex(@"'b[0-9]{5}'b");

您可以使用match.Value:访问该值

string stDispo = match.Value;

固定代码:

private static string FindDispo_InInfo(string text)
{
    Regex pattern = new Regex(@"'b[0-9]{5}'b");
    Match match = pattern.Match(text);
    if (match.Success)
        return match.Value;
    else
        return string.Empty;
}

这里有一个C#演示:

Console.WriteLine(FindDispo_InInfo("12/11/2015: Liefertermin 71994 : 30.11.2015 -> 27.11.2015"));
// => 71994

但是,在该方法中创建regex对象可能效率低下。最好将其声明为静态私有只读字段,然后根据需要在方法内部多次使用。

您需要的是('d{5}),它将捕获许多长度为5的