0

JSON フィードをダウンロードして解析する iOS アプリケーションがあります。JSON フィード内の文字列の 1 つは、画像への 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 を文字列に保持するにはどうすればよいでしょうか?

ありがとう、ダン

4

3 に答える 3

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
于 2013-10-16T14:41:19.193 に答える
0

NSRegularExpressionクラスを見てください。もしかしたらこれでできるかもしれません。

ここからコピーしたサンプル コードを次に示します。

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])])
{
    ...
}
于 2013-10-16T14:37:55.330 に答える
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
于 2013-10-16T14:51:32.027 に答える