2013-04-27 3 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]; 

Я не могу иметь числовое значение с \ ш и \. или только. не возвращай ничего! Может ли кто-нибудь мне помочь?

благодаря

+0

Что вы ожидаете в результате, и что вы на самом деле получаете? Кроме того, было бы полезно, если бы вы показали, как вы используете объект регулярного выражения. –

+0

Работает для меня. Я получаю спички «PW [Майкл Редмонд]» и «WR [9p]». Вы также пытаетесь захватить «KM [6.5]» или «DT [2010-12-12]»? –

+0

есть. У меня есть обычный текст с \\ w, но у меня нет 6.5 или 2010-12-12. Как я могу получить все из них? –

ответ

0

Попробуйте \\[[-+. \\w]+\\]. Это будет соответствовать буквам, цифрам, пробелу, плюс, минус и периоду. Обратите внимание, что - должен быть первым, так как - в середине обозначает диапазон [a-z].

В качестве альтернативы, если вы просто хотите сопоставить что-либо внутри квадратных скобок и не важно, что это на самом деле, попробуйте \\[[^]]+\\]. Это будет соответствовать [, то ничего, что не ], то ].

Смежные вопросы