如何在NSString中查找格式的出现

Ban*_*pal 2 iphone objective-c nsstring find-occurrences

我正在阅读Feed,并且需要找到字符串格式的出现,例如,在"Feed for 03/02/2012"中.现在这个日期将始终采用以下格式:%@ /%@ /%@.我需要找到这种格式发生,从而提取日期.日期和月份可以是任意日期,因此我没有特定的日期来搜索.我在文档中搜索,找不到它.只有我可能的选项似乎采取了一个月的所有12个组合,如"/ 12 /",并找到任何这些的发生.

有没有更好的方法?

tob*_*yer 5

您可以使用正则表达式:

NSString *feed = @"Feed for 03/02/2012";

NSError *error;

NSRegularExpression *regex = [NSRegularExpression         
    regularExpressionWithPattern:@"([0-9]{1,2})/([0-9]{1,2})/([0-2][0-9]{3})"
    options:NSRegularExpressionCaseInsensitive
    error:&error];

[regex enumerateMatchesInString:feed options:0 range:NSMakeRange(0, [feed length])    usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop){
    NSString *month = [feed substringWithRange:[match rangeAtIndex:1]];
    NSString *day = [feed substringWithRange:[match rangeAtIndex:2]];
    NSString *year = [feed substringWithRange:[match rangeAtIndex:3]];
    //...
}];
Run Code Online (Sandbox Code Playgroud)