1

我正在尝试从一串文本中提取图像的 URL。它可能来自不同的网站,并且可以是任何形式的图像(jpg、png、gif 等)。什么是扫描字符串、找到任何匹配的图片扩展名并从中获取图形的好方法?

字符串可能是这样的:

Hello, I hope you like my picture located at http://www.website.com/picture1.png.  However, if you don't, I know you'll like this one http://www.website2.org/picture2.jpg.Please refer all comments to http://www.website5.com/

我希望能够仅扫描字符串以查找图像文件的 URL,并为第一个图像 URL 生成一个新字符串。所以在这个字符串中,我可以创建一个只有http://www.website.com/picture1.png的新字符串

4

3 回答 3

5

我来自 The Link Objective-C - Find a URL within a string

无需为此使用RegexKitLite,因为 iOS 4 Apple 提供NSDataDetector(的子类NSRegularExpression)。

您可以像这样简单地使用它(源是您的字符串):

NSDataDetector* detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeLink error:nil];
NSArray* matches = [detector matchesInString:source options:0 range:NSMakeRange(0, [source length])];
于 2012-11-16T21:16:09.727 回答
1
Use below code after later finish with @Anup Kumar

   for (NSTextCheckingResult *match in matches) {
        NSRange matchRange = [match range];
        if ([match resultType] == NSTextCheckingTypeLink) {
            NSURL *url = [match URL];
        } else if ([match resultType] == NSTextCheckingTypePhoneNumber) {
            NSString *phoneNumber = [match phoneNumber];
        }
   }
于 2013-12-17T12:17:43.273 回答
0

好吧,要获得扩展名,你可以使用 NSString 方法 pathExtension,这将产生一个只有扩展名的字符串,所以你会知道它是 jpg、gif、png 等。

NSString* path = @"http://location.com/pictures/image.jpg";
NSString* extension = [path pathExtension];

对于您的图形,您可以使用 UIImage imageWithData 方法,并将 NSData dataWithContentsOfUrl 方法的输出传递给它,一起使用这些方法将允许您创建一个 UIImage,然后您可以在 UIImageView 中显示它。

UIImage* image = [UIImage imageWithData:[NSData dataWithContentsOfURL:path]];

希望这会有所帮助。

于 2012-11-16T21:20:00.143 回答