2014-09-02 1 views
1

У меня есть строка, какСтрока Шифрование до первого, не пробелу в объективном с

NSString * aString = @"\n \n \n This is my string "; 

Мне нужно извлечь Елки пробелы и символы новой строки UPTO первого непробельного без символа новой строки. что выход должен быть

NSString *output = @"\n \n \n "; 

Я попробовал его с NSScanner следующим NSString * aString = @ «\ п \ п \ п Это моя строка»;

NSScanner *scanner = [NSScanner scannerWithString:aString]; 
NSCharacterSet *characterSet = [[NSCharacterSet whitespaceAndNewlineCharacterSet] invertedSet]; 
NSString *output = nil; 
[scanner scanUpToCharactersFromSet:characterSet intoString:&output]; 

Но после исполнения выходная строка равна нулю. Что не так с этим кодом?

ответ

2

Вы можете использовать регулярные выражения, чтобы соответствовать все пробельные (\ S *) в начале строки (^):

NSString *string = @"\n \n \n This is my string "; 
NSRegularExpression *expression = [[NSRegularExpression alloc] initWithPattern:@"^\\s*" options:0 error:NULL]; 
NSTextCheckingResult *match = [expression firstMatchInString:string options:0 range:NSMakeRange(0, string.length)]; 
NSString *output = [string substringWithRange:match.range]; 
+0

Ok .. его прекрасно работает. Спасибо за ответ. Кстати, у вас есть представление о том, что проблема с моей реализацией NSScanner? – Johnykutty

+0

И что мне нужно сделать для того, чтобы найти то же самое от конца стриога? – Johnykutty

+1

Я пытался что-то сделать с вашим сканером, но я понятия не имею, что там не так. Вы можете использовать @ "\\ s * $" для нахождения того же в конце ($ обозначает конец) – ksysu