0

我有一个字符串,其中某处包含Processing date : 14 Aug 2013或类似。它每次都不在同一个地方,所以我正在查看一个正则表达式来查找该14 Aug 2013部分。

_date = Regex.Match(_headerLines.Last(), @"(Branch processing date : )(\S{1,11})", 
  RegexOptions.IgnoreCase).Groups[2];

给我日期,14但不给我剩下的日期?

4

2 回答 2

2

那是因为\S匹配除空格以外的所有字符,因此它将匹配 1 和 4 并在紧随其后的空格处停止。你可以试试:

@"(Branch processing date : )(.{1,11})"

如果您确定日期就在Branch processing date :零件之后,或者使用类似的东西:

@"(Branch processing date : )([0-9]+ [A-Za-z]+ [0-9]{4})"

这有点限制。

于 2013-09-29T11:38:22.590 回答
1

因为\S匹配非空格字符,所以它不会按您预期的那样工作。

替换\S为与.任何字符匹配的字符(换行符除外)。

@"(Branch processing date : )(.{1,11})"
于 2013-09-29T11:37:55.370 回答