using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(?<type>.{1})(?<user_access>.{3})(?<group_access>.{3})(?<other_access>.{3}) +(?<oder>[0-9]*) +(?<owner>[a-z]*) +(?<group>[a-z]*) +(?<size>\d*) +(?<month>[a-z]{3}) +(?<day>\d{1,2}) +(?<year>\d{0,4})(?<time>(?<hour>\d{2}):(?<minute>\d{2}))? +(?<filename>(?<basename>.+)\.(?<extension>.*)|(?<no_extension_filename>.*))";
string input = @"total 80
drwxr-xr-x 2 root root 4096 Sep 23 15:20 bin
drwxr-xr-x 3 root root 4096 Sep 3 18:41 boot
drwxr-xr-x 3 root root 4096 Aug 19 20:48 build
drwxr-xr-x 14 root root 3900 Sep 23 15:20 dev
drwxr-xr-x 98 root root 4096 Sep 23 15:20 etc
drwxr-xr-x 4 root root 4096 Oct 6 2014 home
drwxr-xr-x 21 root root 4096 Aug 21 19:49 lib
drwxr-xr-x 2 root root 4096 Jul 8 13:21 lib64
drwx------ 2 root root 16384 Aug 26 2014 lost+found
drwxr-xr-x 2 root root 4096 Aug 26 2014 media
drwxr-xr-x 2 root root 4096 Apr 10 2014 mnt
drwxr-xr-x 2 root root 4096 Aug 26 2014 opt
dr-xr-xr-x 133 root root 0 Sep 23 15:20 proc
drwx------ 4 root root 4096 Sep 23 15:27 root
drwxr-xr-x 22 root root 760 Sep 23 17:40 run
drwxr-xr-x 2 root root 12288 Sep 23 15:20 sbin
drwxr-xr-x 2 root root 4096 Aug 26 2014 srv
dr-xr-xr-x 13 root root 0 Sep 23 15:20 sys
drwxrwxrwt 2 root root 4096 Sep 23 17:40 tmp
drwxr-xr-x 10 root root 4096 Aug 26 2014 usr
drwxr-xr-x 14 root root 4096 Aug 21 19:52 var
";
RegexOptions options = RegexOptions.Multiline | RegexOptions.IgnoreCase;
foreach (Match m in Regex.Matches(input, pattern, options))
{
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx