2011-07-22 3 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"; 

Как бы я этого добиться?

Я прочитал документы разработчика Apple по NSRegularExpression, но мне трудно понять. Я уверен, что как только я получу какую-то помощь, я смогу понять это в будущем, мне просто нужно начать.

Заранее спасибо.

ответ

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

Смежные вопросы