我正在阅读提要,并且需要查找字符串格式的出现,例如在“2012 年 3 月 2 日提要”中。现在该日期将始终采用以下格式:%@/%@/%@。我需要查找是否出现这种格式,从而提取日期。日期和月份可以是任意的,所以我没有要搜索的具体日期。我在文档中搜索,找不到它。对我来说,唯一可能的选择似乎是一个月的所有 12 种组合,如“/12/”,并找到其中任何一种的出现。
有没有更好的方法?
我正在阅读提要,并且需要查找字符串格式的出现,例如在“2012 年 3 月 2 日提要”中。现在该日期将始终采用以下格式:%@/%@/%@。我需要查找是否出现这种格式,从而提取日期。日期和月份可以是任意的,所以我没有要搜索的具体日期。我在文档中搜索,找不到它。对我来说,唯一可能的选择似乎是一个月的所有 12 种组合,如“/12/”,并找到其中任何一种的出现。
有没有更好的方法?
您可以使用正则表达式:
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]];
//...
}];