正则表达式从给定字符串中提取日期时间

时间:2014-02-12 09:28:27

标签: c# regex

我想通过正则表达式从字符串中提取日期。

字符串:log-bb-2014-02-12-12-06-13-diag

怎么做?

3 个答案:

答案 0 :(得分:10)

从这里开始:

string s = "log-bb-2014-02-12-12-06-13-diag";
Regex r = new Regex(@"\d{4}-\d{2}-\d{2}-\d{2}-\d{2}-\d{2}");
Match m = r.Match(s);
if(m.Success)
{
    DateTime dt = DateTime.ParseExact(m.Value, "yyyy-MM-dd-hh-mm-ss", CultureInfo.InvariantCulture);
}

答案 1 :(得分:8)

试试这个

(\d+)[-.\/](\d+)[-.\/](\d+)

Regex Demo

它将匹配所有日期格式

答案 2 :(得分:2)

考虑到你的约会日期为2014-02-12,即2014年12月12日。我写了以下代码,用红宝石提取该部分

str = 'log-bb-2014-02-12-12-06-13-diag'

str.scan(/\d{4}.\d{2}.\d{2}/)

将返回["2014-02-12"]

正则表达式写在两个/

之内

\d表示任何整数, 任何整数的{}花括号表示重复的次数,.表示任何字符。在这里,我将其用于-