2

私はC#で正規表現をするのが初めてです。手に入るものは何でも読んで、ログから日時の値を抽出するための正規表現を考え出そうとしました。これは私が使用しているものです:

value = Regex.Match("abc 2012‎-‎12‎-‎23 01:13:51.253", 
                   @"\b20[0-9][0-9]‎-[0-1][0-9]‎-‎[0-3][0-9] [0-2][0-9]:[0-5][0-9]:[0-5][0-9].\d+")
             .Value;

しかし、毎回「」の値を取得しています。誰かが私が間違っていることについて私を助けてもらえますか?

前もって感謝します。

4

3 に答える 3

0

正規表現を学びたいだけの場合は、次を使用できます。

@"(^((((0[1-9])|([1-2][0-9])|(3[0-1]))|([1-9]))\x2F(((0[1-9])|(1[0-2]))|([1-9]))\x2F(([0-9]{2})|(((19)|([2]([0]{1})))([0-9]{2}))))$)"

それがアプリケーションの有効なユースケースである場合は、 のようなものを使用してオブジェクトに解析する必要があります。DateTimeDateTime.ParseExact

于 2013-04-25T15:22:47.890 に答える
0

を使用して文字列を一致させる方法は次のDateTime.ParseExactとおりです。

string dateString = "2012-12-23 01:13:51.253";
string format = "yyyy-MM-dd hh:mm:ss.fff";

DateTime dateTime = DateTime.ParseExact(dateString, format, CultureInfo.InvariantCulture);

文字列の「abc」の部分が何かわかりませんが、それが月の 3 文字の略語である場合は、書式文字列を次のように変更できます。

string format = "MMM yyyy-MM-dd hh:mm:ss.fff";

日時解析用のカスタム形式コードの完全なリストは次のとおりです: http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

于 2013-04-25T15:39:22.787 に答える