【问题标题】:NSRegularExpression to extract url between 2 stringsNSRegularExpression 提取 2 个字符串之间的 url
【发布时间】:2012-06-16 15:07:33
【问题描述】:
我使用NSRegularExpression 来提取两个字符串之间的 URL,这是整个字符串:
<a href="/url?q=http://www.myurl.com/videos/how-to/&sa=
我需要提取/url?q= 和&amp;sa= 之间的部分。
【问题讨论】:
标签:
objective-c
regex
foundation
nsregularexpression
【解决方案1】:
可以使用正则表达式找到并挖掘出来,并带有正向后视和前瞻,如下所示:
NSString *orgStr = @"<a href=\"/url?q=http://www.myurl.com/videos/how-to/&sa=";
NSString *URLRegExPattern = @"(?<=url\\?q=).*(?=&sa=)";
NSError *regExErr;
NSRegularExpression *URLRegEx = [NSRegularExpression regularExpressionWithPattern:URLRegExPattern
options:0
error:®ExErr];
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);
【解决方案2】:
你可以使用NSString的方法:- (NSArray *)componentsSeparatedByString:(NSString *)separator