將字符串中的所有鏈接和電子郵件地址與列表數組進行匹配的最簡單方法是什麼?我在PHP中使用preg_match
,但在C#中,它看起來會有所不同。查找字符串中的所有鏈接和電子郵件地址
回答
假設你已經有一個工作正則表達式,你可以使用Regex
class,就像這樣:
static readonly Regex linkFinder = new Regex(@"https?://[a-z0-9.]+/\S+|\[email protected]\S+\.\S+", RegexOptions.IgnoreCase);
foreach(Match match in linkFinder.Matches(someString)) {
//Do things...
string url = match.Value;
int position = match.Index;
}
這應該環節的工作:
https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?
這應該致電郵地址:
[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}
-1:「email正則表達式」無法匹配的頂級域名(例如.museum TLD)。而域應該是小寫的,所以實際上它不會匹配任何。正則表達式是查找電子郵件地址的錯誤工具。 – Richard 2010-06-09 14:11:55
@Richard:正則表達式不是找到電子郵件的「錯誤工具」。他們**完全是正確的工具**。他們是錯誤的**工具來**解析**和**驗證**,但查找字符串是正則表達式的目的。 – 2010-06-09 14:16:09
@John:對於任何簡短的正則表達式,都會有無效的電子郵件地址。 (例如,在Q中的那個,許多O'Reillys會感到失望。) – Richard 2010-06-10 10:53:02
- 1. 查找字符串中的電子郵件地址 - ColdFusion 9
- 2. 打印一個字符串的所有電子郵件地址
- 3. 格式字符串電子郵件到電子郵件鏈接
- 4. C# - 查找Active Directory用戶的所有電子郵件地址
- 5. 在查詢字符串中傳遞電子郵件地址
- 6. 在字符串中查找電子郵件地址的正則表達式
- 7. 搜索字符串以查找ruby中的電子郵件地址
- 8. Powershell - 使用Where-object,查找帶數字的字符串(電子郵件地址)
- 9. 獲得字符串中的所有電子郵件地址的JavaScript
- 10. BlackBerry查找電子郵件地址
- 11. 檢查字符串是否包含電子郵件地址
- 12. 選擇所有電子郵件地址,
- 13. 從Ruby中的字符串中刪除電子郵件地址
- 14. 正則表達式來查找字符串的電子郵件地址
- 15. pg_search子字符串的電子郵件地址
- 16. 嘗試與查詢字符串鏈接發送電子郵件
- 17. 在郵箱中查找「錯誤的電子郵件地址」
- 18. 如何從電子郵件地址字符串中提取電子郵件地址
- 19. 如何從長字符串中識別電子郵件地址並將電子郵件地址替換爲我公司的電子郵件地址?
- 20. 無障礙的mailto沒有電子郵件地址鏈接
- 21. 如何從字符串中獲取電子郵件地址
- 22. CakePHP從字符串中刪除電子郵件地址
- 23. 使用Oracle從字符串中提取電子郵件地址
- 24. 從電子郵件地址中重新獲得字符串
- 25. 從字符串中提取電子郵件地址
- 26. strings.xml文件中的超鏈接電子郵件地址?
- 27. &符號是Exchange電子郵件地址的有效字符嗎?
- 28. 如何從PHP中的字符串中刪除電子郵件地址和鏈接?
- 29. 電子郵件的查詢字符串操作在PHP中的地址
- 30. 給定字符串格式的單獨電子郵件地址
你問的是一個正則表達式,還是你問如何在C#中使用它? – SLaks 2010-06-09 14:09:22
Duplicate:http://stackoverflow.com/questions/591859/a-regex-that-validates-a-web-address-and-matches-an-empty-string – serhio 2010-06-09 14:11:09
通過「鏈接」你的意思只是http [s]地址還是包含mailto :, javascript :,等等? – Humberto 2010-06-09 14:11:13