Fri Sep 05 23:09:22 2008
Thread 1 advanced to log sequence 4977
  Current log# 3 seq# 4977 mem# 0: K:\ORADATA\REDO03.LOG
  Current log# 3 seq# 4977 mem# 1: E:\REDO03B.LOG
Fri Sep 05 23:09:22 2008
ARC1: Evaluating archive   log 4 thread 1 sequence 4976
ARC1: Beginning to archive log 4 thread 1 sequence 4976
Creating archive destination LOG_ARCHIVE_DEST_2: 'E:\LOG\1_4976.LOG'
Creating archive destination LOG_ARCHIVE_DEST_1: 'K:\LOG\1_4976.LOG'
ARC1: Completed archiving  log 4 thread 1 sequence 4976
Sat Sep 06 01:10:35 2008
Thread 1 advanced to log sequence 4978
  Current log# 1 seq# 4978 mem# 0: K:\ORADATA\REDO01.LOG
  Current log# 1 seq# 4978 mem# 1: E:\REDO01B.LOG
Sat Sep 06 01:10:35 2008
ARCH: Evaluating archive   log 3 thread 1 sequence 4977
ARCH: Beginning to archive log 3 thread 1 sequence 4977
Creating archive destination LOG_ARCHIVE_DEST_2: 'E:\LOG\1_4977.LOG'
Sat Sep 06 01:10:35 2008
ARC0: Evaluating archive   log 3 thread 1 sequence 4977
ARC0: Unable to archive log 3 thread 1 sequence 4977
      Log actively being archived by another process
Sat Sep 06 01:10:35 2008
Creating archive destination LOG_ARCHIVE_DEST_1: 'K:\LOG\1_4977.LOG'
ARCH: Completed archiving  log 3 thread 1 sequence 4977
Sat Sep 06 01:15:29 2008
Thread 1 advanced to log sequence 4979
  Current log# 2 seq# 4979 mem# 0: K:\ORADATA\REDO02.LOG
  Current log# 2 seq# 4979 mem# 1: E:\REDO02B.LOG
Sat Sep 06 01:15:29 2008以上是文本文件中的部份内容.现在要将里面的所有日期取出,放入string类型变量中,请问应该怎样做呢?另外C#能从下往上查找吗?

解决方案 »

  1.   

    用正则了!顺便给楼主一个正则表达式的下载网站,这里面很多常用的!http://regxlib.com
      

  2.   

    (Sun|Mon|Tue|Wen|Thu|Fri|Sat)\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s([0-2][0-9]|3[0-1])\s(([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]))\s(\d\d\d\d)
      

  3.   


    允许按行读取我现在的代码是:StreamReader sr = new StreamReader( 文件名, System.Text.Encoding.Default );
    string line = L"";
        while ( line = sr.ReadLine() )
        {
    // 判断变量 line 是否为日期字符串格式 ,是的话.............
        }
      

  4.   


                string s = richTextBox1.Text;
                Regex r = new Regex(@"(Sun|Mon|Tue|Wen|Thu|Fri|Sat)\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s([0-2][0-9]|3[0-1])\s(([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]))\s(\d\d\d\d)");
                //Regex r = new Regex(@"");
                string abc = "";
                foreach (Match m in r.Matches(s))
                {
                    abc+=  m.Value;
                    abc += "\r\n";
                }
                MessageBox.Show(abc);
    试试
      

  5.   


    using System.Text.RegularExpressions;Regex re = new Regex("(Sun|Mon|Tue|Wen|Thu|Fri|Sat)\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s([0-2][0-9]|3[0-1])\\s(([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]))\\s[\\d]{4,4}", RegexOptions.IgnoreCase);
                MatchCollection mc = re.Matches("text");
                foreach (Match ma in mc)
                {
                }
      

  6.   


                StreamReader sr = new StreamReader("D:\\test2.txt");
                string content = sr.ReadToEnd();
                Regex reg = new Regex("(?<date>[Sun|Mon|Tue|Wed|Thu|Fri|Sat]+\\s[Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec]+\\s\\d{2}\\s\\d{2}:\\d{2}:\\d{2}\\s\\d{4})");
                Match match = reg.Match(content);
                List<string> list = new List<string>();
                while (match.Success)
                {
                    list.Add(match.Groups["date"].Value);
                    Console.WriteLine(match.Groups["date"].Value);
                    match = match.NextMatch();
                }
                sr.Close();