【问题标题】:NSRegularExpression to extract textNSRegularExpression 提取文本
【发布时间】:2011-07-22 22:27:05
【问题描述】:

全部,

我有一个包含两个键和值的字典。我需要从中提取点点滴滴并将它们放入单独的字符串中。

{
        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 开发人员文档,但我觉得很难理解。我敢肯定,一旦我在这里得到了一些帮助,我将来可以弄清楚,我只需要开始。

提前致谢。

【问题讨论】:

    标签: iphone objective-c xcode


    【解决方案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 的情况下完美运行。

    【讨论】:

    • 这太完美了!太感谢了。我一定会把它设为“ip”;)
    猜你喜欢
    • 1970-01-01
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    • 2020-05-23
    • 2012-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多