The String Like this:
Select(GetName(null),GetID(22),1,GetID(),GetData("T",100),true);
String MainFunName = "Select()"
String MainFunName_Parameters="GetName(null),GetID(22),1,GetID(),GetData("T",100),true"
int MainFunName_Parameters1_Count = 6;
GetName(null)
GetID(22)
1
GetID()
GetData("T",100)
true
_str.Substring(_str.IndexOf("(") + _str.Length).Split(',').Count();
GetData("T"
100)
You can use it like this:
String str = "Select(GetName(null),GetID(22),1,GetID(),GetData(\"T\",100),true)";
Match result = Regex.Match(str, @"^(\w+)\((\w+(\(.*?\))?,?)*\)$");
string outerMethodName = result.Groups[1].Value;
List<string> arguments = result.Groups[2].Captures.Cast<Capture>().Select(i => i.Value.TrimEnd(',')).ToList();
Console.WriteLine(outerMethodName);
int argumentLength = arguments.Count;
foreach (string argument in arguments)
{
Console.WriteLine(argument);
}