Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 在VS2012中使用正则表达式查找具有特定参数的方法_Regex_Visual Studio 2012 - Fatal编程技术网

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

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等的匹配项 我的理由是,

我想找到一个(重载)方法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。

可能您需要一个.NET解决方案,但这里有一个在Java中工作的正则表达式,然后您可以转换它

AddMailToQueue\s*\(([^,]+,){3}\s*2\s*[,)]
如果从零开始计算参数,事情会变得更容易。您可以将参数的索引Y放在看到
3
的地方,将参数的值Z放在看到
2
的地方


它工作正常,无需更改!此外,删除首字母。*(就在方法名之前)使搜索速度更快!