using System.Text.RegularExpressions;
public static void Main()
Analyze("c:\\FF\\SQL\\FacultyForce\\Functions\\dbo\\file.sql");
Analyze("c:\\FF\\SQL\\Scripts\\Release\\2020-04A\\pre\\file.sql");
Analyze("c:\\FF\\SQL\\Scripts\\Release\\2020-04A\\post\\file.sql");
Analyze("c:\\FF\\SQL\\Scripts\\AdHoc\\FF-123\\pre\\file.sql");
Analyze("c:\\FF\\SQL\\Scripts\\AdHoc\\FF-123\\post\\file.sql");
public static void Analyze(string input){
const string PATTERN = @"^(?<root>\w:\\[\\\w\s]*\\sql)\\(?<database>[\w\s]+?)\\(?<type>[\w\s]+?)(?:\\(?<schema>[\w\s]+?))?\\(?<file>[\w\s\-\.]*)\.sql$";
Match match = Regex.Match(input, PATTERN, RegexOptions.IgnoreCase);
Console.WriteLine(match.Groups.Count + " groups matched}");
Console.WriteLine("-----------------------------------");
Console.WriteLine("Root: " + match.Groups["root"]);
Console.WriteLine("Database: " + match.Groups["database"]);
Console.WriteLine("Type: " + match.Groups["type"]);
Console.WriteLine("Schema: " + match.Groups["schema"]);
Console.WriteLine("File: " + match.Groups["file"]);