我的應用程序接收到大量文本字符串,這些字符串可能包含或不包含字符串中任何地方的URL。從字符串中提取URL的最佳方法是什麼?謝謝。從字符串中提取URL
回答
The BSD-licensed AutoHyperlinks framework提供了一些類來掃描URL的文本,並將它們返回給您或將它們標記爲屬性字符串中的鏈接。
我不認爲它爲iPhone構建開箱即用,但是您總是可以添加預處理器指令來刪除任何AppKit相關的代碼。掃描和返回界面應該可以工作,一旦你得到它建立。 (確保運行測試。)
如果您正在使用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」指針以提高效率。 – 2012-02-07 11:49:15
我也在開源的KSFileUtilities代碼中實現了這個功能:https://github.com/karelia/KSFileUtilities/commit/4ef561512fab9a169fcf63129037bfddfda6257b – 2012-02-07 12:01:54
- 1. 字符串函數從URL中提取
- 2. 從HTML字符串中提取URL
- 3. 從Javascript中提取url字符串
- 4. 從URL提取數字(字符串)
- 5. 從另一個url或字符串中提取字符串
- 6. 從URL字符串中提取查詢字符串
- 7. 從字符串中提取字符串
- 8. 從字符串提取日期(URL)
- 9. 從字符串中提取
- 10. 從字符串中提取
- 11. 從字符串中提取字符
- 12. 從字符串中提取字符
- 13. 從字符串獲取URL
- 14. 如何從url字符串中提取數字ruby
- 15. 從字符串中提取子串
- 16. 從字符串中提取子串
- 17. Javascript jquery:從值中提取字符串,並用此字符串組成URL
- 18. 從字符串中提取符號
- 19. 從字符串中提取一個字
- 20. 從字符串中提取數字
- 21. iMacros:從字符串中提取數字
- 22. 從字符串中提取數字
- 23. 從字符串中提取數字
- 24. 從字符串中提取數字? Java
- 25. R - 從字符串中提取數字
- 26. 從字符串中提取數字
- 27. 從字符串中提取2個字
- 28. R:從字符串中提取數字
- 29. 從字符串中提取數字
- 30. Rapidminer從字符串中提取數字
謝謝,我試過,但所產生的錯誤和警告的數量來看,這將需要一個顯著大量的工作以獲得在iPhone上這個工作 - – RunLoop 2010-03-14 21:24:27
JK:那可能會產生誤導。如果一行代碼足夠不可編譯,則會產生很多錯誤,但仍然只有一行代碼。我認爲AutoHyperlinks的AppKit依賴部分是非常隔離的,您可以很容易地將它們條件化。 – 2010-03-14 21:32:36
謝謝彼得。明天我會試試這個補丁。 – RunLoop 2010-03-14 21:42:55