我有一个iOS应用程序,可以下载和解析JSON提要。 JSON提要中的一个字符串提供图像的URL。问题是它以这种格式存储URL:
<img src="http://25.media.tumblr.com/c9f50eb1fa2e16ad24e311910afabeac/tumblr_mh9v59RLTt1r5ewjho1_500.jpg"/><br/><br/><p>Vibrant Blue.</p>
为了在UIImageView中显示这个图像,我显然只需要URL而不是HTML位。因此,如果我将其存储在NSString中,那么如何删除其余部分并将URL保留在字符串中?
谢谢, 丹
答案 0 :(得分:3)
看看@这个例子。您可以轻松地将其用于您的解决方案:
NSString *str = @"<img src=\"http://25.media.tumblr.com/c9f50eb1fa2e16ad24e311910afabeac/tumblr_mh9v59RLTt1r5ewjho1_500.jpg\"/><br/><br/><p>Vibrant Blue.</p>";
NSArray*arr = [str componentsSeparatedByString:@"\""];
在这种情况下,您的arr objectAtIndex:1
是:
http://25.media.tumblr.com/c9f50eb1fa2e16ad24e311910afabeac/tumblr_mh9v59RLTt1r5ewjho1_500.jpg
答案 1 :(得分:0)
查看NSRegularExpression课程。也许你可以用这个来做。
以下是从here复制的示例代码。
NSError *error = nil;
NSRegularExpression *tagsRegex = [NSRegularExpression
regularExpressionWithPattern:@"(<b>|<u>|<i>|<br/?>)"
options:NSRegularExpressionCaseInsensitive
error:&error];
if (!tagsRegex) {
NSLog(@"Tags regex creation error: %@", [error localizedDescription]);
}
if ([tagsRegex numberOfMatchesInString:marketingMessage options:0
range:NSMakeRange(0, [marketingMessage length])])
{
...
}
答案 2 :(得分:0)
使用NSRegularExpression
的替代解决方案:
NSString *str = @"<img src=\"http://25.media.tumblr.com/c9f50eb1fa2e16ad24e311910afabeac/tumblr_mh9v59RLTt1r5ewjho1_500.jpg\"/><br/><br/><p>Vibrant Blue.</p>";
NSRegularExpression *regexp = [NSRegularExpression regularExpressionWithPattern:@"\"(.*)\""
options:NSRegularExpressionCaseInsensitive
error:NULL];
NSTextCheckingResult *result = [regexp firstMatchInString:str
options:NSMatchingReportProgress
range:NSMakeRange(0, str.length)];
NSString *imageURL = [str substringWithRange:[result rangeAtIndex:1]]; // 1 for first capture group