2013-01-21 24 views
-1

即時尋找正則表達式可以從以下HTML如何使用正則表達式

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

提取的日期,並將其轉換格式29/09/12

回答

4

匹配這個模式從字符串中提取日期: -

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

,並替換: -

$1/$2/$3 

\d用於匹配digits。使用它與量詞(+),你可以匹配一個或多個數字。 現在,在正則表達式中,dot(.)是一個元字符,它匹配任何字符。從字面上匹配period,您需要將其轉義,或者在字符類中使用它。


要轉換到一個特定的Date Format,例如: - 轉換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") 
}); 

您可以檢查它是否有效與否。

+0

不改變'9' - > '09' – Rawling

+1

@搗亂..嗯。是的。將嘗試修改。 –

1

這裏是正則表達式模式:\d{1,2}\.\d{1,2}\.\d{1,2}

這裏是如何分析這個字符串爲DateTime的例子:

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

(\d{4})[-](\d{2})[-](\d{2})使用此正則表達式來接2017年1月23日日期格式