2014-09-02 38 views
1

我有一個像字符串高達第一個非空白字符在目標C

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

我需要提取冷杉空格,換行字符高達第一個非空白非換行字符的字符串。即輸出應該是

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

NSScanner嘗試瞭如下 的NSString * ASTRING = @ 「\ n \ n \ n這個是我的字符串」;

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

好吧..其完美的工作。謝謝你的答案。順便問一下,你對我的NSScanner實現有什麼問題有什麼想法嗎? – Johnykutty 2014-09-02 07:11:18

+0

另外我需要做什麼來從紋章的末尾找到相同的東西? – Johnykutty 2014-09-02 07:13:37

+1

我試圖用你的掃描儀做些什麼,但我不知道那裏有什麼問題。你可以使用@「\\ s * $」來找到相同的結尾($表示結束) – ksysu 2014-09-02 07:36:43

相關問題