using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"^(?<SaasPrefix>d:\\exchanges\\server1)\\((?<sicTenantId>[^<>:""/\\\|\?\*]+)\\)?(?<sicTenantOrContainerId>[^<>:""/\\\|\?\*]+)\\(?<outDir>out)\\(?<path>([^<>:""/\|\?\*]+\\)*?)(?<filename>[^<>:""/\\\|\?\*]+(\.[^<>:""/\\\|\?\*]+)*)$
";
string input = @"d:\exchanges\server1\Sic_TenantId\out\File.ext
d:\exchanges\server1\Sic_TenantId\ContainerId\out\File.ext
d:\exchanges\server1\ContainerId\out\file.ext
d:\exchanges\server1\Sic_TenantId\out\dir1\File.ext
d:\exchanges\server1\Sic_TenantId\ContainerId\out\dir1\File.ext
d:\exchanges\server1\ContainerId\out\dir1\file.ext
d:\exchanges\server1\Sic_TenantId\out\dir1\dir2\File.ext
d:\exchanges\server1\Sic_TenantId\ContainerId\out\dir1\dir2\File.ext
d:\exchanges\server1\ContainerId\out\dir1\dir2\file.ext
d:\exchanges\server1\Sic_TenantIdºª!·$%&()=¿@#~€¬^`+[]¨´çÇ{}-_.,;\out\Fileºª!·$%&()=¿@#~€¬^`+[]¨´çÇ{}-_.,;.ext
d:\exchanges\server1\Sic_TenantIdºª!·$%&()=¿@#~€¬^`+[]¨´çÇ{}-_.,;\ContainerIDºª!·$%&()=¿@#~€¬^`+[]¨´çÇ{}-_.,;\out\Fileºª!·$%&()=¿@#~€¬^`+[]¨´çÇ{}-_.,;.ext
d:\exchanges\server1\Sic_TenantIdºª!·$%&()=¿@#~€¬^`+[]¨´çÇ{}-_.,;\out\dir1ºª!·$%&()=¿@#~€¬^`+[]¨´çÇ{}-_.,;\Fileºª!·$%&()=¿@#~€¬^`+[]¨´çÇ{}-_.,;.ext
d:\exchanges\server1\Sic_TenantIdºª!·$%&()=¿@#~€¬^`+[]¨´çÇ{}-_.,;\ContainerIDºª!·$%&()=¿@#~€¬^`+[]¨´çÇ{}-_.,;\out\dir1ºª!·$%&()=¿@#~€¬^`+[]¨´çÇ{}-_.,;\Fileºª!·$%&()=¿@#~€¬^`+[]¨´çÇ{}-_.,;.ext
d:\exchanges\server1\Sic_TenantIdºª!·$%&()=¿@#~€¬^`+[]¨´çÇ{}-_.,;\out\dir1ºª!·$%&()=¿@#~€¬^`+[]¨´çÇ{}-_.,;\dir2ºª!·$%&()=¿@#~€¬^`+[]¨´çÇ{}-_.,;\Fileºª!·$%&()=¿@#~€¬^`+[]¨´çÇ{}-_.,;.ext
d:\exchanges\server1\Sic_TenantIdºª!·$%&()=¿@#~€¬^`+[]¨´çÇ{}-_.,;\ContainerIDºª!·$%&()=¿@#~€¬^`+[]¨´çÇ{}-_.,;\out\dir1ºª!·$%&()=¿@#~€¬^`+[]¨´çÇ{}-_.,;\dir2ºª!·$%&()=¿@#~€¬^`+[]¨´çÇ{}-_.,;\Fileºª!·$%&()=¿@#~€¬^`+[]¨´çÇ{}-_.,;.ext
";
RegexOptions options = RegexOptions.Multiline;
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