我正在尝试从一串文本中提取图像的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
的新字符串答案 0 :(得分:5)
我来自The Link Objective-C - Finding a URL within a string
不需要使用RegexKitLite
,因为iOS 4 Apple提供NSDataDetector
(NSRegularExpression
的子类)。
你可以像这样使用它(source是你的字符串):
NSDataDetector* detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeLink error:nil];
NSArray* matches = [detector matchesInString:source options:0 range:NSMakeRange(0, [source length])];
答案 1 :(得分: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];
}
}
答案 2 :(得分: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]];
希望这很有帮助。