хранение регулярных выражений по группам вместо случаев - PullRequest
0 голосов
/ 08 января 2010

Я не уверен, есть ли еще, чтобы сделать это, но не мешало бы спросить, я использую regexkitlite для создания приложения для iPhone. Я специально использую Regex lib для анализа некоторых HTML. Мой вопрос в регулярном выражении, таком как @"<a href=([^>]*)>([^>]*) - " каждое совпадение в скобках может быть помещено в массив, используя

    NSString *regexString = @"<a href=([^>]*)>([^>]*) - ";
    NSArray  *matchArray = [response arrayOfCaptureComponentsMatchedByRegex:regexString];

Здесь хранятся совпадения как:

   Array ( Array(ENTIRE_MATCH1, FIRST_BRACKETS1, SECOND_BRACKETS1), 
            Array(ENTIRE_MATCH2, FIRST_BRACKETS2, SECOND_BRACKETS2),
            Array(ENTIRE_MATCH3, FIRST_BRACKETS3, SECOND_BRACKETS3));

Есть ли команда, которая позволяла бы захватывать подобные матчи вместо этого?

   Array ( Array(ENTIRE_MATCH1, ENTIRE_MATCH2, ENTIRE_MATCH3), 
            Array(FIRST_BRACKETS1, FIRST_BRACKETS2, FIRST_BRACKETS3),
            Array(SECOND_BRACKET1, SECOND_BRACKET2, SECOND_BRACKET3));

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

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

Zen_Silence

1 Ответ

0 голосов
/ 16 января 2010

Если кому-то еще нужна функция для копирования группы в другой массив, этот взгляд сделает это, я все еще ищу лучшее решение, если у кого-то есть.

    group = [[NSMutableArray alloc] initWithCapacity:[matchArray count]];
    for (int i = 0; i < [matchArray count]; i++) {
        NSString *temp = [[matchArray objectAtIndex: i] objectAtIndex: 2];
        [group addObject: temp];
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...