繁体   English   中英

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

[英]Regex to extract date time from given string

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

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

怎么做?

这里有一些开始:

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);
}

尝试这个

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

正则表达式演示

它将匹配所有日期格式

考虑到您的日期仅为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指任何整数, {}与任何整数花括号意味着它已经重复次数, . 意味着任何角色。 我在这里使用它-

我已经检查了上述所有建议,但如果日期格式为“2000 年 11 月 11 日”,则没有一个适用。 因为这是我需要为我的问题提取的常量格式,所以这里是它的解决方案。

[AZ]\w*\s\d*\W*\d{4}

注意:此正则表达式专门用于提取上述格式的日期,如果顺序是随机的,例如。 “2000 年 11 月 11 日”。 此正则表达式不会给出合适的结果。 无论对上述内容稍作修改,都会给出正确的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM