下面的代码无法提取日期文本并将其转换 - 这就是我到目前为止所尝试的:
var inputText = "some words 2012-01-06 13-32-40 some words";
string pattern = "d{4}-d{2}-d{2} d{4}-d{2}-d{2}";
var regex = new Regex(pattern);
Match match = regex.Match(inputText);
// it should find the "2012-01-06 13-32-40" text
DateTime result;
if (match.Success)
{
result = DateTime.Parse(match.Value);
}
如何编写正则表达式模式以便提取日期字符串部分以及如何将此字符串转换为DateTime?
我试过了:
IFormatProvider theCultureInfo = new System.Globalization.CultureInfo("en-GB", true);
result = DateTime.ParseExact(match.Value, "yyyy-MM-dd hh-mm-ss", theCultureInfo);
谢谢,
答案 0 :(得分:2)
正则表达式模式将是:
"\d{4}-\d\d-\d\d \d\d-\d\d-\d\d"
此外,你必须像这样解析日期字符串:
DateTime d = DateTime.ParseExact(match.Value, "yyyy-MM-dd HH-mm-ss", CultureInfo.InvariantCulture);
如果时间格式为“13:32:40”,你可以像在你的例子中那样解析它。