我正在寻找可以从以下html中提取日期的正则表达式
<p>British Medical Journal, 29.9.12, pp.37-41.</p>
并将其转换为 29/09/12 格式
匹配此模式:-
(\d+)[.](\d+)[.](\d+)
并替换为: -
$1/$2/$3
\d用于匹配digits。将它与 quantifier 一起使用(+),您将匹配一个或多个数字。现在,在正则表达式中,adot(.)是一个元字符,可以匹配任何字符。要匹配period字面意思,您需要转义它,或者在字符类中使用它。
要转换为特定的Date Format,例如: - convert 9-> 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")
});
您可以检查它是否有效。
这是正则表达式模式:\d{1,2}\.\d{1,2}\.\d{1,2}.
下面是如何将此字符串解析为 DateTime 的示例:
DateTime.ParseExact("29.9.12", "d.M.yy", CultureInfo.InvariantCulture);
(\d{4})[-](\d{2})[-](\d{2})使用此正则表达式选择 2017-01-23 格式日期