我的應用程序接收到大量文本字符串,這些字符串可能包含或不包含字符串中任何地方的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. 從Javascript中提取url字符串
- 2. 從另一個url或字符串中提取字符串
- 3. 從URL字符串中提取查詢字符串
- 4. 從字符串提取日期(URL)
- 5. 從字符串中提取
- 6. 從字符串中提取字符
- 7. 從字符串獲取URL
- 8. 從字符串中提取子串
- 9. 從Python中的字符串中提取URL
- 10. 從vba excel中的字符串中提取URL
- 11. 如何從Swift 3中的URL中提取字符串?
- 12. 從字符串中提取數字
- 13. 從字符串中提取數字
- 14. Oracle:從字符串中提取數字
- 15. 從字符串中提取2個字
- 16. Rapidminer從字符串中提取數字
- 17. 從字符串中提取數字javascript
- 18. 從字符串提取
- 19. 提取值從字符串
- 20. 提取從字符串
- 21. 從字符串中抓取url變量?
- 22. 提取URL查詢字符串ES6
- 23. 從Java中的字符串中提取
- 24. 從地址欄中提取字符串URL
- 25. 如何使用C#Asp.net從此XML字符串中提取URL
- 26. 從查詢字符串的URL中提取部分
- 27. 如何從PHP中的URL字符串提取查詢參數?
- 28. 從URL中提取字符串的正則表達式
- 29. 使用javascript正則表達式從字符串中提取URL
- 30. Bash:從URL字符串中提取方案和主機部分
謝謝,我試過,但所產生的錯誤和警告的數量來看,這將需要一個顯著大量的工作以獲得在iPhone上這個工作 - – RunLoop 2010-03-14 21:24:27
JK:那可能會產生誤導。如果一行代碼足夠不可編譯,則會產生很多錯誤,但仍然只有一行代碼。我認爲AutoHyperlinks的AppKit依賴部分是非常隔離的,您可以很容易地將它們條件化。 – 2010-03-14 21:32:36
謝謝彼得。明天我會試試這個補丁。 – RunLoop 2010-03-14 21:42:55