static void Main(string[] args) { string[] lines = { @"-rw-rw-rw- 1 user group 1402 Dec 30 2005 AmazonCA.gif", @"-rwxrwxrwx 1 owner group 4480 Feb 15 2:25 8A17T2T1.txt" }; string pattern = @"^(?<Permissions>\S+)\s+(?<Links>\d+)\s+(?<User>\w+)\s+(?<Group>\w+)\s+(?<FileSize>\d+)\s+(?<Month>\w+)\s+(?<Day>\d+)\s+((?<Year>\d{4})|(?<Time>\d+:\d+(:\d+)?))\s+(?<FileName>\S+)$"; foreach (string line in lines) { Match m = Regex.Match(line, pattern); if (m.Success) { Console.WriteLine("Month {0}", m.Groups["Month"]); Console.WriteLine("Day {0}", m.Groups["Day"]); Console.WriteLine("Year {0}", m.Groups["Year"]); Console.WriteLine("Time {0}", m.Groups["Time"]); Console.WriteLine("FileName {0}", m.Groups["FileName"]); } else Console.WriteLine("No match"); } Console.ReadLine(); return; }