我需要一个正则表达式,请
zzz abc_2006073122
zzz abc_def_2006073122
zzz abc_def_ghi_2006073122
我需要获得日期的前8位数字(20060731),但在此之前我可能有几个_部分,所以不太确定什么表达式会让我得到我需要的东西。
由于
答案 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个会被捕获。