正则表达式,如zzz abc_2006073122

时间:2011-09-03 18:40:08

标签: c# regex

我需要一个正则表达式,请

zzz abc_2006073122

zzz abc_def_2006073122

zzz abc_def_ghi_2006073122

我需要获得日期的前8位数字(20060731),但在此之前我可能有几个_部分,所以不太确定什么表达式会让我得到我需要的东西。

由于

2 个答案:

答案 0 :(得分:1)

        string str = @"zzz abc_def_ghi_2006073122";
        Regex reg = new Regex(@"^[a-zA-Z_ ]*_(?<someNamedGroup>\d{8})");
        var match = reg.Match(str);
        var result = match.Groups[1].Value;

答案 1 :(得分:0)

正则表达式是这样的:

([0-9]{8})(?:[0-9]{2})$

含义:锚定在字符串的末尾,8位数字为“take”,2位数字为忽略。

如果您不能将该行的结尾用作锚点,则可以尝试:

(?:_)([0-9]{8})(?:[0-9]{2})

含义:a _后跟10位数字。这些数字中只有8个会被捕获。