Программирование на C # Как маркировать интервалы и "," с помощью регулярных выражений? - PullRequest
1 голос
/ 22 ноября 2010

У меня есть программа на C #, которая берет строку журнала и пытается разбить ее на различные массивы.

Строка, используемая в этом примере, будет выглядеть следующим образом: «Вторник, 26 октября 2010 г. 23: 48: 54 664, macb, d / drwxrwxrwx, 0,0,33-144-1, C: / WINDOWS / system32 / ras»который мне нужно, чтобы интервал ('') и "," были разделены на массивы.Результаты запуска моих программ будут следующими:

Tue Oct 26 2010 23:48:54
664
macb
d/drwxrwxrwx
0
0
33-144-1
C:/WINDOWS/system32/ras

Этот результат верен только частично, так как фильтруется ",", но не пробел ('').Поэтому мне нужно время 23:48:54, чтобы отфильтровать.Может кто-нибудь пожалуйста посоветовать мне по кодам пожалуйста?Спасибо!

Мои коды:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.IO;
using System.Text.RegularExpressions;


namespace Testing
{
class Program
{
    static void Main(string[] args)
    {

        //System.Collections.Generic.IEnumerable<String> lines = File.ReadLines
          ("C:\\Test\\ntfs2.txt");

        String value = "Tue Oct 26 2010 23:48:54,664,macb,d/drwxrwxrwx,0,0,33-144-
        1,C:/WINDOWS/system32/ras";
        //
        // Split the string on line breaks.
        // ... The return value from Split is a string[] array.
        //

        String rex = @"(\t)|,";

        String[] lines = Regex.Split(value, rex);

        foreach (String line in lines)
        {
            Console.WriteLine(line);
        }
    }
}
}

Ответы [ 2 ]

4 голосов
/ 22 ноября 2010

Вы можете использовать

value.Split(new Char[]{',', ' '}, StringSplitOptions.RemoveEmptyEntries) 

вместо регулярных выражений.

0 голосов
/ 22 ноября 2010

Как указал Дженс, вы можете избежать неприятностей, просто используя метод String.Split. Тем не менее, регулярное выражение будет выглядеть так:

String rex = @"[\s,]";
...