I는 다음과 같습니다 서명과 같은 방법이 있습니다정규 표현식을 사용하여 문자열과 같은 메소드의 매개 변수를 추출하는 방법은 무엇입니까?
void methodName(str arg1, int arg2, int arg3 = 4)
{
}
또는
내가 여기(str arg1, int arg2, int arg3 = 4)
(int arg1)
을주는이의 매개 변수를 추출 할
str methodName2(int arg1)
{
}
무엇을한다 I 시도했었다. 이것은 나를 위해 결코 일치하지 않는다.
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 그룹 안의 ungreedy'?'를 제거하십시오. 이렇게하면 괄호 - 즉각적인 중괄호와 일치 시키며 아무 것도 남겨 두지 않습니다. (비록 그것이 [나를 위해 일하는 것 같다] (http://regexr.com?2su3h)) –