Нет необходимости использовать библиотеку регулярных выражений, как предлагают другие ответы - класс, который вы ищете, называется NSScanner
. Используется следующим образом:
NSString *originalString = @"(123) 123123 abc";
NSMutableString *strippedString = [NSMutableString
stringWithCapacity:originalString.length];
NSScanner *scanner = [NSScanner scannerWithString:originalString];
NSCharacterSet *numbers = [NSCharacterSet
characterSetWithCharactersInString:@"0123456789"];
while ([scanner isAtEnd] == NO) {
NSString *buffer;
if ([scanner scanCharactersFromSet:numbers intoString:&buffer]) {
[strippedString appendString:buffer];
} else {
[scanner setScanLocation:([scanner scanLocation] + 1)];
}
}
NSLog(@"%@", strippedString); // "123123123"
РЕДАКТИРОВАТЬ: Я обновил код, потому что оригинал был написан на моей голове, и я подумал, что этого будет достаточно, чтобы указать людям правильное направление. Кажется, что люди после кода, они могут просто скопировать и вставить прямо в свое приложение.
Я также согласен с тем, что решение Майкла Пельца-Шермана более уместно, чем использование NSScanner
, так что вы можете взглянуть на это.