次のhtmlから日付を抽出できる正規表現を探しています
<p>British Medical Journal, 29.9.12, pp.37-41.</p>
そしてそれを29/09/12の形式に変換します
このパターンに一致します:-
(\d+)[.](\d+)[.](\d+)
と置き換えます:-
$1/$2/$3
\d
一致するために使用されdigits
ます。数量詞とともに使用すると(+)
、1つ以上の数字を照合できます。さて、正規表現では、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形式の日付を選択します