NSRegularExpression提取2个字符串之间的url

时间:2012-06-16 15:07:33

标签: objective-c regex foundation nsregularexpression

我正在使用NSRegularExpression来提取2个字符串之间的URL,这里是整个字符串:

  <a href="/url?q=http://www.myurl.com/videos/how-to/&amp;sa= 

我需要在/url?q=&amp;sa=之间提取部分内容。

2 个答案:

答案 0 :(得分:0)

您可以使用NSString- (NSArray *)componentsSeparatedByString:(NSString *)separator

的方法

答案 1 :(得分:0)

可以使用具有正面后视和前瞻的正则表达式找到并挖掘出来,如下所示:

NSString *orgStr = @"<a href=\"/url?q=http://www.myurl.com/videos/how-to/&amp;sa=";

NSString *URLRegExPattern = @"(?<=url\\?q=).*(?=&amp;sa=)";

NSError *regExErr;
NSRegularExpression *URLRegEx = [NSRegularExpression regularExpressionWithPattern:URLRegExPattern 
                                                                          options:0
                                                                            error:&regExErr];

NSString *URLString = nil;

NSRange range = [URLRegEx rangeOfFirstMatchInString:orgStr 
                                            options:0 
                                              range:NSMakeRange(0, orgStr.length)];

if (!NSEqualRanges(range, NSMakeRange(NSNotFound, 0))) {
    URLString = [orgStr substringWithRange:rangeOfFirstMatch];
}

NSLog(@"URL: %@", URLString);