2011-07-22 26 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