2012-09-24 27 views
0

我有以下字符串,我怎麼能提取位於兩個分隔符之間的文本:如何在iOS中的字符串中提取兩個分隔符之間的文本?

some text to be extracted

text text text text 

= = = = = = = = = = = = = 

some text to be extracted 

= = = = = = = = = = = = = 

text text text text 

我想也是兩個分隔符與文本返回。 這怎麼能用Objective-C來完成?

回答

0

,你可以使用類似下面的代碼行,

NSArray *arrChars = [@"Your,String,for,test" componentsSeparatedByString:@","]; 

所以您將獲得由分隔字符串的部分。

希望這可以幫助你爲你想要的。

1

這是一種方法。

你必須找到你的分隔字符串的所有範圍。

然後你把範圍2×2提取它們之間的字符串:

NSString *str = @"text text text text --- some text to be extracted... --- text text text text"; 

    NSString *myDelimiterString = @"---"; 

    NSMutableArray *arrayOfRangeForOccurrences = [[NSMutableArray alloc] init]; 
    NSUInteger length = [str length]; 
    NSRange range = NSMakeRange(0, length); 
    while(range.location != NSNotFound) 
    { 
     range = [str rangeOfString:myDelimiterString options:0 range:range]; 
     if(range.location != NSNotFound) 
     {  
      [arrayOfRangeForOccurrences addObject:[NSValue valueWithRange:range]]; 
      range = NSMakeRange(range.location + range.length, length - (range.location + range.length)); 
     } 
    } 

    //at least 2 delimiters have been found, we can extract a string 
    if (arrayOfRangeForOccurrences.count >= 2) { 
     //Extracting first text : 
     NSRange firstRangeForDelimiter = [[arrayOfRangeForOccurrences objectAtIndex:0] rangeValue]; 
     NSRange secondRangeForDelimiter = [[arrayOfRangeForOccurrences objectAtIndex:1]rangeValue]; 

     NSRange rSub = NSMakeRange(firstRangeForDelimiter.location + firstRangeForDelimiter.length, secondRangeForDelimiter.location - firstRangeForDelimiter.location - firstRangeForDelimiter.length); 
     NSString *myExtractedText = [str substringWithRange:rSub]; 
     NSLog(@"myExtractedText is : %@", myExtractedText); 
    } else { 
     NSLog(@"No pair of delimiter found"); 
    } 
相關問題