我有一个字符串,其中某处包含Processing date : 14 Aug 2013
或类似。它每次都不在同一个地方,所以我正在查看一个正则表达式来查找该14 Aug 2013
部分。
_date = Regex.Match(_headerLines.Last(), @"(Branch processing date : )(\S{1,11})",
RegexOptions.IgnoreCase).Groups[2];
给我日期,14
但不给我剩下的日期?
那是因为\S
匹配除空格以外的所有字符,因此它将匹配 1 和 4 并在紧随其后的空格处停止。你可以试试:
@"(Branch processing date : )(.{1,11})"
如果您确定日期就在Branch processing date :
零件之后,或者使用类似的东西:
@"(Branch processing date : )([0-9]+ [A-Za-z]+ [0-9]{4})"
这有点限制。
因为\S
匹配非空格字符,所以它不会按您预期的那样工作。
替换\S
为与.
任何字符匹配的字符(换行符除外)。
@"(Branch processing date : )(.{1,11})"