2013-04-27 4 views
0

에서 작동하지 않습니다 나는이 문자열이 있습니다왜 태그가 '.' NSRegularExpression

NSString* yourString = @"(;GM[1]FF[4]SZ[19]AP[CGoban Pro:2.2]PW[Michael Redmond]WR[9p]DT[2010-12-12]KM[6.5]RE[B+0.5]AN[Michael Redmond]BK[1]C[toto : [test]]"; 

을 그리고 난이 정규 표현식이 있습니다

NSRegularExpression* regex = [NSRegularExpression 
           regularExpressionWithPattern:@"((RU)|(KM)|(TM)|(OT)|(PW)|(PB)|(WR)|(BR)|(WR)|(DT)|(RE))\\[[\\w ]+\\]" 
           options:NSRegularExpressionCaseInsensitive 
           error:&error]; 

내가 \ w와 \와 숫자 값을 가질 수 있습니다. 또는 단지. 아무것도 돌려 보내라! 아무도 나를 도울 수 있습니까?

덕분에

+0

결과로 기대되는 것은 무엇이며 실제로 얻는 것은 무엇입니까? 또한, 정규 표현식 개체를 사용하는 방법을 보여 주면 도움이 될 것입니다. –

+0

나를 위해 일합니다. 나는 "PW [Michael Redmond]"와 "WR [9p]"와 일치합니다. "KM [6.5]"또는 "DT [2010-12-12]"도 캡처하려고합니까? –

+0

예. 일반 텍스트가 \\ w인데 6.5 또는 2010-12-12가 없습니다. 어떻게하면 모두받을 수 있습니까? –

답변

0

시도 \\[[-+. \\w]+\\]. 글자, 숫자, 공백, 더하기, 빼기 및 마침표와 일치합니다. 중간에 -[a-z]과 같은 범위를 나타내므로 -이 먼저 와야합니다.

또는 대괄호 안의 내용을 일치시키고 실제로 무엇인지 상관하지 않으려면 \\[[^]]+\\]을 시도하십시오. 그러면 [과 일치하고 ]이 아니며 그 다음에 ]이 아닙니다.