Как получить часть строки из главной строки в Objective C - PullRequest
1 голос
/ 22 января 2010

У меня есть mainString, из которой мне нужно получить часть строки после нахождения ключевого слова.

NSString * mainString = "Привет, как дела, GET = dsjghdsghghdsjkghdjkhsg";

теперь мне нужно получить строку после ключевого слова "GET =".

Ожидание ответа.

Ответы [ 3 ]

7 голосов
/ 22 января 2010

Ознакомьтесь с документацией NSString .

Предполагая, что ваша строка действительно настолько проста, вы можете сделать что-то вроде этого:

NSArray *components = [mainString componentsSeparatedByString: @"GET="];
NSString *stringYouWant = [components objectAtIndex: 1];

Очевидно, это абсолютно не проверяет ошибки и делает ряд предположений о фактическом содержании mainString, но оно должно помочь вам начать.

Также обратите внимание, что код несколько защищает, так как предполагает, что вы ищете GET=, а не разделяете на =. В любом случае это хак с точки зрения разбора, но ... эй ... хаки иногда правильный ответ.

4 голосов
/ 22 января 2010

Вы можете использовать регулярные выражения через RegexKitLite :

NSString *mainString = @"Hi how are you GET=dsjghdsghghdsjkghdjkhsg";
NSString *matchedString = [mainString stringByMatching:@"GET=(.*)" capture:1L];
// matchedString == @"dsjghdsghghdsjkghdjkhsg";

Используемое регулярное выражение, GET=(.*), в основном говорит: «Ищите GET=, а затем захватите все после этого». () указывает группу захвата, которая полезна для извлечения только части совпадения. Группы захвата начинаются с 1, а группа захвата 0 - это «весь матч». Часть внутри группы захвата, .*, говорит: «Сопоставьте любой символ (.) ноль или более раз (*)».

Если строка, в данном случае mainString, не соответствует регулярному выражению, тогда matchedString будет NULL.

0 голосов
/ 22 января 2010

Вы можете получить местоположение первого вхождения =, а затем просто взять подстроку mainString из местоположения = до конца строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...