2014-02-25 76 views
0

我对获取图像进行HTML源的一些代码...目标C正则表达式表达

NSError *error; 

NSRegularExpression *regex = [NSRegularExpression   
           regularExpressionWithPattern:@"(https?)\\S*(png|jpg|jpeg|gif)" 
           options:NSRegularExpressionCaseInsensitive 
           error:&error]; 

[regex enumerateMatchesInString:htmlstr 
         options:0 
          range:NSMakeRange(0, htmlstr.length) 
        usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) { 
         [imagesURLStringArray addObject:[htmlstr substringWithRange:result.range]]; 
        }];  

我奋力得到适当的图像,如果该链接是像下面...

<a href='http://imagelink.jpg'><img src='http://imagesource.jpg'.... 

我怎样才能提取源而不是链接?

干杯,

回答

0

我不知道是否objective-c正则表达式支持lookbehind或不。您可以使用此回顾后尝试:

regularExpressionWithPattern:@"(?<=src=['\"])(https?)\\S*(png|jpg|jpeg|gif)" 
           +------------+ 
+2

'@“(?<= SRC = ['\ ”])(?HTTPS)\\ S *(PNG | JPG | JPEG | GIF)“'作品,NSRegularExpression确实支持lookbehind断言,唯一的问题是如果'src','='和'''或'''之间有任何间隔,你不能在后面使用无界运算符。 – WDUK

+0

使用'\ s *'进行可选空间检查将在'='附近执行以确定该情况。 –

+0

你不能在断言后面使用'* * – WDUK