Мое приложение получает множество текстовых строк, которые могут содержать или не содержать URL-адрес в любой точке строки. Каким будет лучший способ извлечения URL-адреса из строки? Спасибо.Извлечение URL из строки
ответ
The BSD-licensed AutoHyperlinks framework предоставляет классы для сканирования текста для URL-адресов и либо возвращает их вам, либо маркирует их как ссылки в атрибутной строке.
Я не думаю, что он построен из коробки для iPhone, но вы всегда можете добавить директивы препроцессора, чтобы вырезать любой зависимый от AppKit код. Интерфейс scan-and-return должен работать только после его создания. (Обязательно выполните тесты.)
Mike Abdullah wrote a patch for iPhone support. Вы можете попробовать это.
Если вы работаете над 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;
}
Это, безусловно, предпочтительнее, если вы можете использовать специальную структуру. Обратите внимание, что вы фактически не заботитесь о количестве слов в орфографии, обычно при поиске ссылок, поэтому просто передайте указатель «NULL» для повышения эффективности. –
Я также реализовал это в нашем коде KSFileUtilities с открытым кодом: https://github.com/karelia/KSFileUtilities/commit/4ef561512fab9a169fcf63129037bfddfda6257b –
- 1. Извлечение URL из строки Javascript
- 2. Извлечение последней строки из URL
- 3. Извлечение строки запроса из URL
- 4. preg_match - извлечение строки из URL
- 5. Извлечение строки Url из ArrayList
- 6. Извлечение частей URL из строки
- 7. Извлечение даты из строки (URL)
- 8. Извлечение URL-адресов из строки типа JSON
- 9. Извлечение Url из строки, хотя регулярное выражение
- 10. Извлечение URL из адресной строки браузера
- 11. извлечение url из строки с Javascript
- 12. Извлечение имени папки URL из строки
- 13. Извлечение строки из таблицы с URL-адресом
- 14. Извлечение несколько моделей из URL строки
- 15. PHP Извлечение из строки
- 16. Извлечение строки из строки
- 17. Извлечение строки из NSURL
- 18. извлечение строки из другого URL-адреса или строки
- 19. Извлечение данных из URL
- 20. Извлечение запросов из URL
- 21. Извлечение HTML из URL
- 22. Извлечение ID из URL
- 23. Извлечение метаданных из url
- 24. Извлечение запроса из URL
- 25. извлечение вара из URL
- 26. Извлечение строки из матча
- 27. Извлечение из строки в Pig
- 28. PHP: Извлечение строки из строки
- 29. Извлечение подстроки из длинной строки
- 30. Извлечение строки из runnable/TimerTask
Спасибо, я попытался это, но, судя по количеству ошибок и предупреждений, сгенерированного, это потребует значительного количества работы, чтобы получить эту работу на iPhone - – RunLoop
JK: Это может ввести в заблуждение. Одна строка кода может вызвать множество ошибок, если она достаточно несовместима, но она все еще только одна строка кода. Я думаю, что зависимые от AppKit части AutoHyperlinks достаточно изолированы, что вы можете условно их упростить. –
Спасибо, Питер. Завтра я дам патч. – RunLoop