ASP 标记页面内方法调用的正则表达式 C#

Regex for Method Calls inside of ASP markup pages by C#

我需要一个正则表达式模式来通过 c# 在 Asp 标记页面 (webform .aspx) 和 (MVC cshtml) 中查找任何类型的方法调用。

我正在寻找一种模式来涵盖几乎像这样的可能性:

1)     MethodName1()

2)     ClassName.MethodName2(prm1,prm2,...)

3)     new ClassName.Obj1.Obj2.Method3(...)

4)    [new] [AnyThing].[anthing].[anything]([anything])

5)     MethodName1().ToString() 
 ....

这是我的代码,文件内容是标记文本文件。

 int counter = 0;
 string line;
 var regex = new Regex(@"*[a-zA-Z].{1}+*[a-zA-Z](+*[a-zA-Z])+"); //??????

 // Read the asp markup file and parse it line by line.
 var file = new System.IO.StreamReader(path);
 while ((line = file.ReadLine()) != null)
    {                    
      var match = regex.Match(line);
      if (match.Success)
         {
            //Do sth
         }
      counter++;
    }
 file.Close();

试试这个正则表达式,它还添加了一些形式为 (?<groupname>regex) 的命名组,访问方式如下:myMatch.Groups["myGroupName"].Value:

(?:\[?new]?)?\s*(?<source>(?:\[?\w+\]?\.)*)\[?(?<method>\w+)\]?\((?<args>\[?.*?\]?)\)

input/output: (online demo here)