Извлечение URL из строки - PullRequest
3 голосов
/ 14 марта 2010

Мое приложение получает множество текстовых строк, которые могут содержать или не содержать URL-адрес в любой части строки. Какой лучший способ извлечь URL из строки? Спасибо.

Ответы [ 2 ]

8 голосов
/ 15 марта 2010

Если вы работаете с приложением 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;
}
3 голосов
/ 14 марта 2010

BSH-лицензированная среда AutoHyperlinks предоставляет классы для сканирования текста на предмет URL-адресов и либо возвращает их вам, либо помечает их как ссылки в атрибутной строке.

Я не думаю, что он собирается из коробки для iPhone, но вы всегда можете добавить директивы препроцессора, чтобы вырезать любой код, зависимый от AppKit. Интерфейс сканирования и возврата должен просто работать, как только вы получите его для сборки. (Обязательно запустите тесты.)

Майк Абдулла написал патч для поддержки iPhone. Вы можете попробовать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...