从字符串中提取URL

时间:2010-03-14 20:20:59

标签: objective-c cocoa cocoa-touch

我的应用会收到大量文本字符串,这些字符串可能包含也可能不包含字符串中任何位置的URL。从字符串中提取URL的最佳方法是什么?谢谢。

2 个答案:

答案 0 :(得分:8)

如果您正在使用Mac应用程序,Mac OS X 10.6提供了一个新的API,可让您使用拼写检查器检测URL。你可以这样做。

NSString *s = @"http://example.com"
NSInteger wordCount = 0;
NSOrthography *orthography = nil;
NSArray *checkResults = [[NSSpellChecker sharedSpellChecker] checkString:s range:NSMakeRange(0, [s length]) types:NSTextCheckingTypeLink options:nil inSpellDocumentWithTag:0 orthography:&orthography wordCount:&wordCount];
for (NSTextCheckingResult *result in checkResults) {
    NSRange range = result.range;
    NSURL *URL = result.URL;
}

答案 1 :(得分:3)

The BSD-licensed AutoHyperlinks framework提供了扫描网址文字的类,并将其返回给您或将其标记为属性字符串中的链接。

我不认为它是开箱即用的iPhone,但你总是可以添加预处理器指令来删除任何依赖于AppKit的代码。一旦你进行构建,扫描和返回界面应该可以正常工作。 (确保运行测试。)

Mike Abdullah wrote a patch for iPhone support.你可以试试。