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

rum*_*umi -1 c# regex

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

<p>British Medical Journal, 29.9.12, pp.37-41.</p>
Run Code Online (Sandbox Code Playgroud)

并将其转换为格式29/09/12

Roh*_*ain 5

匹配此模式:-

(\d+)[.](\d+)[.](\d+)
Run Code Online (Sandbox Code Playgroud)

并替换为:-

$1/$2/$3
Run Code Online (Sandbox Code Playgroud)

\d用于匹配digits。与数量词一起使用时(+),您将匹配一个或多个数字。现在,在正则表达式中,a dot(.)是与任何字符匹配的元字符。要从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")
});
Run Code Online (Sandbox Code Playgroud)

您可以检查它是否有效。