正则表达式模式$

时间:2015-09-01 10:50:23

标签: regex

源文本如下:

string b = "ab c  def   gh";

List<String> c = Regex
  .Matches(b, @"\s{2,}")
  .OfType<Match>()
  .Select(match => match.Value)
  .ToList();

我想提取时间和日期值,所以我使用了这种模式:

Time: 8/26/2015 12:12:12 AM

但是因为有些时候源是这样的:

Time: (.+)

我必须添加模式,我的文字应该以AM或PM结尾,但是使用以下模式我没有得到我考虑的结果:

Time: 8/26/2015 13:13:13 Fired by event

请你帮我找到正确的模式吗?

  

注意:我不希望Time: (.+) AM|PM$ 这样的时间,我只想要   以AM或PM结尾的时间

3 个答案:

答案 0 :(得分:4)

您可以使用以下内容:

Time: (\d+\/\d+\/\d+ \d+:\d+:\d+)

更新:对于以AM / PM结尾的时间,您最后必须添加(AM|PM)组:

Time: (\d+\/\d+\/\d+ \d+:\d+:\d+) (AM|PM)

Live demo

答案 1 :(得分:0)

试试这个

Time:\s+(.+)\s+(AM|PM)$

答案 2 :(得分:0)

你可以使用

Time:\s(.*?)\s(.*?)\s.*

第1组是日期 第2组是时间

但是,将字符串拆分为空白并采用第二和第三项

可能更容易