在VS2012中使用正则表达式查找具有特定参数的方法

时间:2014-09-16 12:37:01

标签: regex visual-studio-2012

我想找到一个(重载)方法 X ,其中位置 Y 的参数的值为 Z

示例:

AddMailToQueue("a", "b", "c", 2);
AddMailToQueue("a", "b", "c", 2, "d");
  • X:AddMailToQueue
  • Y:4
  • Z:2

方法名称X可能会或可能不会加前缀(例如this.AddMailToQueue)。

我想出了以下内容:.*AddMailToQueue\(.+2.*\);但是这个正则表达式没有考虑参数的位置,也会返回Z = 20,21等的匹配。

我的理由是分隔参数的逗号可能用于查明参数Y。

1 个答案:

答案 0 :(得分:1)

可能你想要一个.NET解决方案,但这里有一个适用于Java的正则表达式,那么也许你可以转换它。

AddMailToQueue\s*\(([^,]+,){3}\s*2\s*[,)]

如果从零开始计算参数,事情会变得更容易。您可以将参数的索引 Y 放在3的位置,将参数的值 Z 放在2

See it working