2012-03-03 3 views
0

친구, 과 같은 문자열을 일치 시키려합니다. "int lnum [];" 그래서이 패턴과 일치 시키려고합니다.C# regex match, match.Success는 규칙을 따른 후에도 false를 반환합니다.

[A-Za-z_0-9] [A-Za-z_0-9]\[\] 

그러나 작동하지 않는 것 같습니다. 내가 http://www.mikesdotnetting.com/Article/46/CSharp-Regular-Expressions-Cheat-Sheet

string pJavaLine = "int lnum[]"; 
match = Regex.Match(pJavaLine, @"[A-Za-z_0-9] [A-Za-z_0-9]\[\] ", RegexOptions.IgnoreCase); 
      if (match.Success) { 
       // Finally, we get the Group value and display it. 
       string key = match.Groups[1].Value; 
       Console.WriteLine(key); 
      } 

에서 규칙을 보았다 match.Success는 false를 반환합니다. 아무도 내게 이것을 얻을 수있는 방법을 알려주시겠습니까?

+0

안녕하세요. 저는 대부분을 받아 들였습니다. 제안이 유용하지 않다면 Pls는 내가해야할 일을 알려줍니다. –

+0

그게 좋습니다! 걱정하지 마십시오. 제안 사항이 유용하지 않은 경우 적어도 포스터에 의견을 남기십시오. 그들에게는 더 나은 제안이있을 수 있으며 적어도 미래에 사이트를 탐색하는 사람들에게 도움이됩니다. –

답변

4

[A-Za-z_0-9]과 같은 각 문자 클래스는 하나의 문자와 만 일치합니다. 둘 이상의 문자를 일치 시키려면 끝에 무언가를 추가해야합니다. 예 : [A-Za-z_0-9]+ - +은 1 개 이상을 의미합니다. *을 0 이상으로 사용하거나 범위를 지정할 수도 있습니다 (예 : {2,5}, 2 ~ 5 자). 말했다

해당 문자열과 일치하는이 패턴을 사용할 수 있습니다

[A-Za-z_0-9]+ [A-Za-z_0-9]+\[\] 

\w느슨하게 해당 [A-Za-z_0-9]에 당신은 아마 간단하게 사용할 수 있도록, (아래 jessehouwing의 코멘트에 링크 참조) :

\w+ \w+\[\] 

체크 here for more info on the standard Character Classes을 확인하십시오.

+0

그것은 간단하게 작동합니다 :) Thanks Jay !! –

+0

"fun (int lnum [])"을 "\ w + \\ (w + \ w + \ [\] + \\)"를 사용하여 구문 분석하려고하면 true를 반환하지 않습니다. 내게 알려주시겠습니까? 나는 모든 규칙을 따랐다. –

+0

@SaurabhGhorpade 두 번째'w' 이전과'['및']'의 각 대괄호 앞에 백 슬래시가 없습니다. 이 옳은 것을 얻을 수있는 훌륭한 정규 표현식 도구가 있습니다. Regex 버디는 하나입니다. http://regexlib.com/RETester.aspx와 같은 온라인 정규식 테스터도 있습니다 – Jay