C#正则表达式提取方法和参数名称

C#正则表达式提取方法和参数名称,c#,regex,C#,Regex,我需要关于regex的帮助,在这里我传递这种字符串: "MethodName(int? Property1, string Property2, List<int?> Property3)" 我试过这个: 还有这个 但无法得到我需要的结果您可以这样做: ["MethodName","Property1","Property2","Property3"] ^(\w+)\((((.*)(\s)(.*)),((.*)(\s)(.*)),((.*)(\s)(.*)))\) 记住你有

我需要关于regex的帮助,在这里我传递这种字符串:

"MethodName(int? Property1, string Property2, List<int?> Property3)"
我试过这个:

还有这个


但无法得到我需要的结果

您可以这样做:

["MethodName","Property1","Property2","Property3"]
^(\w+)\((((.*)(\s)(.*)),((.*)(\s)(.*)),((.*)(\s)(.*)))\)
记住你有多个小组

这取决于您找到一种方法来简化这个正则表达式,以捕获变量参数,而不仅仅是三个

正如下面用户所建议的,这是正确且更简单的正则表达式:

\b\w+(?=\s*[,()])

这里是一个演示:

您可以使用更简单的正则表达式来实现这一点。使用这个正则表达式,它确保只匹配方法名或变量名,方法是使用look-ahead查看下面的可选空格和


我更新了我的问题,我尝试了使用您提供的第二个正则表达式,效果很好。只需在每个
上拆分第二个组,然后在
空格上再次拆分它们,并保留最后一部分以获取属性名称。谢谢,它起到了作用,但如果我使用无参数的方法字符串,如“MethodName()”,则会失败。你能告诉我对这两种情况都有效的修改吗?@MichaelSamteladze正如PushpeshKumarRajwanshi所建议的这是正确且更简单的正则表达式:\b\w+(?=\s*[,())
\b\w+(?=\s*[,()])