我有一個像簽名的方法,看起來像這樣:如何使用正則表達式提取字符串等方法的參數?
void methodName(str arg1, int arg2, int arg3 = 4)
{
}
或
str methodName2(int arg1)
{
}
我想提取的這隻參數給
(str arg1, int arg2, int arg3 = 4)
(int arg1)
這裏是我的試過。這絕對不適合我。
string namePortion = String.Format(@"^.*{0}", "methodName");
Regex rex = new Regex(namePortion + @"\s*(?<params>\(.*\)).*\{", RegexOptions.Compiled | RegexOptions.Multiline);
string parms = "";
Match m = rex.Match(sourceCode);
if (m.Success)
{
parms = m.Groups["params"].Value;
}
我也曾使用RegexBuddy測試了這一點,似乎工作,所以我不知道什麼是錯的。
在大括號中,從params組中刪除不明確的`?`。這將使它與括號直接大括號硬匹配,並且不會遺漏任何東西。 (儘管它[似乎對我有用](http://regexr.com?2su3h)) – 2011-01-19 23:10:28