【问题标题】:c# Regex Date in bracketsc#正则表达式日期在括号中
【发布时间】:2014-05-26 23:17:25
【问题描述】:

我有一个序列,我想找到其中的所有日期条目。

日期条目的格式为 [27 May 2014 11:07 by Daniel]

我如何形成正则表达式来找到这个序列?

[(日期)按(姓名)]

其中(日期)和(名称)是可变的。

日期的格式始终为 DD MM YYYY HH:mm。 名称是一个不带空格的 n 长度字符串。

这篇文章 (Date and time regular expression) 使用....

(3[0-1]|2[0-9]|1[0-9]|0[1-9])[\s{1}|/|-] (一月|二月|三月|四月|五月|六月|七月|八月|九月|十月|十一月|十二月) [\s{1}|/|-]\d{4}\s(20|21|22|23|[0-1]?\d): [0-5]?\d:[0-5]?\d

... 查找此格式的日期时间。不,我们如何封装这个找到整个序列?

如何与表达式的其余部分结合?

【问题讨论】:

    标签: c# regex datetime


    【解决方案1】:

    假设格式是这样的,这应该可以完成工作: @"\[(?<Date>.+) by (?<Author>.+)\]"

    访问Named Group 的示例:

    var m = Regex.Match("[27 May 2014 11:07 by Daniel]", @"\[(?<Date>.+) by (?<Author>.+)\]");
    var date = DateTime.Parse(m.Groups["Date"].Value);
    var author = m.Groups["Author"].Value;
    

    【讨论】:

      【解决方案2】:

      很容易...不是真的

      \[0*([1-9]|[12][0-9]|3[01]) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (201[4-9]|20[2-9][0-9]|2[1-9][0-9]{2}|[3-9][0-9]{3}) ((?:0?[0-9]|1[0-9]|2[0-3]){2}:(?:0?[0-9]|[1-5][0-9])) by (\w+)\]
      

      http://regex101.com/r/nU4uJ6

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-05
        • 1970-01-01
        相关资源
        最近更新 更多