2011-01-12 57 views
3

我想提取括號無法提取使用NSRegularExpression(正則表達式模式)串 - iphone

實施例 原始字符串之間[]字符串:@「這是一個測試[得到這個字符串]」。

我想在[]之間得到提取字符串,即「在此示例中獲取此字符串」。

請在下面找到我的代碼

NSMutableString *predicateString = [[NSMutableString alloc] initWithFormat:@"%@",@"this is a test [to get this string]."]; 

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\[[^\].]*\]" 
        options:NSRegularExpressionCaseInsensitive 
        error:&error]; 


NSMutableArray *rangeArray = [[NSMutableArray alloc] init]; 
__block NSUInteger count = 0; 
[regex enumerateMatchesInString:predicateString options:0 range:NSMakeRange(0, [predicateString length]) usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop){ 
    NSRange matchRange = [match range]; 
    matchRange.length = matchRange.length+1; 
    NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; 
    NSLog(@"matchRange.location: %d",matchRange.location); 
    NSLog(@"matchRange.length: %d",matchRange.length); 

    if (++count >= 100) *stop = YES; 

}]; 

請讓我知道,如果我做錯了什麼。

謝謝。

回答

1

看起來表達式是錯誤的,您需要跳過斜線(例如:@"\\[[^\\].]*\\]")。

+0

感謝馬塞洛.....它工作。 – D25 2011-01-12 14:13:05