开发者

storing regexkitlite matches by by the group instead of the occurance

开发者 https://www.devze.com 2022-12-15 23:13 出处:网络
I\'m not sure if there is away to do this but it doesnt hurt to ask i\'m using regexkitlite to create a iPhone app. Im specifically using the Regex lib to parse some html. My question is in a regular

I'm not sure if there is away to do this but it doesnt hurt to ask i'm using regexkitlite to create a iPhone app. Im specifically using the Regex lib to parse some html. My question is in a regular expression such as @"<a href=([^>]*)>([^>]*) - " each match in between the brackets can be placed in an array using

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

This stores the matches as :

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

Is there a command that would allow be to capture the matches like this instead?

   Array ( Array(ENTIRE_MATCH1, ENTIRE_MATCH2, ENTIRE_MATCH3), 
            开发者_如何学PythonArray(FIRST_BRACKETS1, FIRST_BRACKETS2, FIRST_BRACKETS3),
            Array(SECOND_BRACKET1, SECOND_BRACKET2, SECOND_BRACKET3));

I know i could do this fairly easily with a for loops or for each loops but i was wondering if there is a function in the regexkitlite library.

Thanks in Advance,

Zen_Silence


If anyone else needs a function to copy a group to another array this look will do it i'm still looking for a better solution if someone has one.

    group = [[NSMutableArray alloc] initWithCapacity:[matchArray count]];
    for (int i = 0; i < [matchArray count]; i++) {
        NSString *temp = [[matchArray objectAtIndex: i] objectAtIndex: 2];
        [group addObject: temp];
    }
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号