如何使用正则表达式从字符串中提取日期

时间:2013-01-21 10:01:08

标签: c# regex

我正在寻找可以从以下html中提取日期的正则表达式

<p>British Medical Journal, 29.9.12, pp.37-41.</p>

并以29/09/12格式转换它

3 个答案:

答案 0 :(得分:5)

匹配此模式: -

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

并替换为: -

$1/$2/$3

\d用于匹配digits。将它与量词(+)一起使用,您将匹配一个或多个数字。 现在,在正则表达式中,dot(.)是一个元字符,匹配任何字符。要按字面意思匹配period,您需要将其转义,或在字符类中使用它。


要转换为特定的Date Format,例如: - 转换9 - &gt; 09,您可以使用MatchEvaluator: -

string input = "British Medical Journal, 29.9.12, pp.37-41.";
Regex reg = new Regex(@"(\d+)[.](\d+)[.](\d+)");
string result = reg.Replace(input, delegate(Match m) {
    return m => DateTime.Now.ToString("dd/MM/yy")
});

您可以检查它是否有效。

答案 1 :(得分:1)

这是正则表达式模式:\d{1,2}\.\d{1,2}\.\d{1,2}

以下是如何将此字符串解析为DateTime的示例:

DateTime.ParseExact("29.9.12", "d.M.yy", CultureInfo.InvariantCulture);

答案 2 :(得分:0)

(\d{4})[-](\d{2})[-](\d{2})使用此正则表达式选择2017-01-23格式日期