У меня есть NSString, который будет чем-то как "xxxx (yyyyy)", где X и Y могут быть любым символом. Я хотел бы извлечь просто y из круглой скобки. Мне удалось извлечь x использование NSScanner, но я не выяснил надлежащий способ извлечь y.
Для полноты:
Если вы абсолютно уверены в формате вывода, вы можете использовать методы массива:
NSString *inputString; // this is in the form "xxxx(yyyy)"
NSCharacterSet *delimiters = [NSCharacterSet characterSetWithCharactersInString:@"()"];
NSArray *splitString = [inputString componentsSeparatedByCharactersInSet:delimiters];
NSString *xString = [splitString objectAtIndex:0];
NSString *yString = [splitString objectAtIndex:1];
Конечно, вы должны быть уверены, что ограничивающие символы не существуют в inputString
Самый простой способ - использовать RegExKit:
http://regexkit.sourceforge.net/
Затем вы должны сделать что-то вроде:
[@"xxxx(yyyyy)" getCapturesWithRegexAndReferences:@"\\((.*)\\)",@"$1", &extractedString,nil];
и extractString будет содержать все, что указано в скобках.
Отсканируйте до "(", затем отсканируйте его , затем отсканируйте до ")". Результат последнего сканирования - гггг
.