Regex 在VS2012中使用正则表达式查找具有特定参数的方法
我想找到一个(重载)方法X,其中位于Y位置的参数的值为Z 示例:Regex 在VS2012中使用正则表达式查找具有特定参数的方法,regex,visual-studio-2012,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等的匹配项 我的理由是,
AddMailToQueue("a", "b", "c", 2);
AddMailToQueue("a", "b", "c", 2, "d");
- X:AddMailToQueue
- Y:4
- Z:2
*AddMailToQueue\(.2.*\)
但是这个正则表达式不考虑参数的位置,并且还将返回Z=20、21等的匹配项
我的理由是,分隔参数的逗号可能可以用来精确定位参数Y。可能您需要一个.NET解决方案,但这里有一个在Java中工作的正则表达式,然后您可以转换它
AddMailToQueue\s*\(([^,]+,){3}\s*2\s*[,)]
如果从零开始计算参数,事情会变得更容易。您可以将参数的索引Y放在看到3
的地方,将参数的值Z放在看到2
的地方
它工作正常,无需更改!此外,删除首字母。*(就在方法名之前)使搜索速度更快!