, , . aa(\d+)aaa(?=[\s|\S]*headerc) aa, 1 , ([\s\S] [\s|\S]), 0 , headerc. , .
, lookbehind .NET regex:
(?s)(?<=\bheaderb\b(?>(?!\bheader[bc]\b).)*)\d+
. . (?<=\bheaderb\b(?>(?!\bheader[bc]\b).)*) lookbehind , headerb headerc 0 ( Singleline, , . ). (?>(?!\bheader[bc]\b).)* , , headerc headerb. , headerc...headerd headerb....headerc (. regex).
( " " ). : "", LINQ, , :
var lines = s.Split(new[] { "\r", "\n"}, StringSplitOptions.RemoveEmptyEntries);
var subset = lines.SkipWhile(p => p != "headerb")
.Skip(1)
.TakeWhile(m => m != "headerc")
.ToList();
var digits = Regex.Matches(string.Join(string.Empty, subset), "[0-9]+")
.Cast<Match>()
.Select(v => v.Value)
.ToList();
