2011-07-22 29 views
2

全部,NSRegularExpression提取文本

我有一個字典有兩個鍵和值。我需要從它們中提取零星碎片並將它們放入單獨的字符串中。

{ 
     IP = "192.168.17.1"; 
     desc = "VUWI-VUWI-ABC_Dry_Cleaning-R12-01"; 
} 

這就是我撥打description時字典的樣子。

我希望新的輸出是這樣的:

NSString *IP = @"192.168.17.1"; 
NSString *desc = @"ABC Dry Cleaning"; //note: I need to get rid of the underscores 
NSString *type = @"R"; 
NSString *num = @"12"; 
NSString *ident = @"01"; 

我將如何實現這一目標?

我已閱讀了關於NSRegularExpression的Apple開發人員文檔,但我發現很難理解。我確信一旦我在這裏得到一些幫助,我可以在將來找到它,我只需要開始。

在此先感謝。

回答

1

好吧,首先,你必須獲得與每個鍵關聯的對象:

NSString *ip = [dic objectForKey:@"IP"]; //Btw, you shouldn't start a variable's name with a capital letter. 
NSString *tempDesc = [dic objectForKey:@"desc"]; 

然後,我會做什麼分割字符串中tempDesc,基於字符-

NSArray *tmpArray = [tempDesc componentsSeparatedByString:@"-"]; 

然後你只需要獲取感興趣的字符串或子字符串,並根據需要重新格式化:

NSString *desc = [[tmpArray objectAtIndex:2] stringByReplacingOccurrencesOfString:@"_" withString:@" "]; 
NSString *type = [[tmpArray objectAtIndex:3] substringToIndex:1]; 
NSString *num = [[tmpArray objectAtIndex:3] substringFromIndex:1]; 
NSString *ident = [tmpArray objectAtIndex:4]; 

正如你所看到的,這工作完全不使用NSRegularExpression

+0

這是完美的!非常感謝。我一定會把它做成「ip」;) – Baub