переписывая NSRegularExpression в RegexKit - PullRequest
1 голос
/ 15 ноября 2011

Я довольно новичок в разработке для Mac OS X (только мой второй день). Пару месяцев занимался программированием под iOS, получил основы, сделал небольшое приложение. Затем я решил сделать это также для Mac OS X, когда неожиданно столкнулся с проблемой: NSRegularExpression поддерживается только Mac OS X 10.7 или более поздней версии, и я использую 10.6.7. После небольшого поиска я нашел RegexKit.framework. Поэтому я установил его, но затем мне нужно переписать этот кусок кода для инфраструктуры RegexKit.

NSString *aString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression         
                              regularExpressionWithPattern:@"(\\{.*?\\})"
                              options:NSRegularExpressionCaseInsensitive
                              error:&error];
[regex enumerateMatchesInString:aString options:0 range:NSMakeRange(0, [aString length]) usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop){
    [MyParserClass parserWithResponse:[aString substringWithRange:match.range] delegate:self andRequest:request];
}];

Буду признателен за любую помощь в том, как я могу сделать то же самое с помощью RegexKit.

редактировать: получилось так:

NSString *aString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSString *regex = @"(\\{.*?\\})";
NSArray *matches = [aString arrayOfCaptureComponentsMatchedByRegex:regex];
for (NSArray *match in matches) {
    [MyParserClass parserWithResponse:[match lastObject] delegate:self andRequest:request];
}

надеюсь, это когда-нибудь кому-нибудь поможет:)

1 Ответ

3 голосов
/ 16 ноября 2011

получилось так:

NSString *aString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSString *regex = @"(\\{.*?\\})";
NSArray *matches = [aString arrayOfCaptureComponentsMatchedByRegex:regex];
for (NSArray *match in matches) {
    [MyParserClass parserWithResponse:[match lastObject] delegate:self andRequest:request];
}

надеюсь, это когда-нибудь кому-нибудь поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...