我正在读出.cs文件,并希望每个方法存储至少两个参数的所有参数。 因此,paranthesses之间的每两个单词组合如下:
public static void MyFunction(string Param1, int Param2, List<string> Param3)
它应该将string Param1
,int Param2
和List<string> Param3
提取到集合中。使用此参数时,始终至少有两个参数。
到目前为止,我得到了以下正则表达式:
([A-Za-z0-9<>]+\s[a-z0-9]+)
这会扫描整个方法标题,因此也包含public static
作为匹配项。
有关如何解决此问题的任何建议吗?
感谢。
答案 0 :(得分:1)
如果不使用正则表达式,这似乎更容易。你显然需要一些东西来识别函数头,但是一旦你知道你有一个函数头,就像这样打破参数:
using System;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
string functionHeader = "public static void MyFunction(string Param1, int Param2, List<string> Param3)";
string parameters = functionHeader.Substring(functionHeader.IndexOf("(") + 1)
.Replace(", ", ",")
.Replace(")", String.Empty);
List<string> parametersCollection = new List<string>(parameters.Split(','));
parametersCollection.ForEach(pc => Console.WriteLine(pc));
}
}
结果:
string Param1
int Param2
List<string> Param3