我認爲這將是一個簡單的谷歌搜索,但顯然不是。什麼是我可以在C#中使用的正則表達式從一個更大的文本解析出包括任何查詢字符串的URL ?我花了很多時間,發現了很多不包含查詢字符串的例子。我不能使用System.URI,因爲假設你已經有了URL ......我需要在周圍的文本中找到它。正則表達式的URL包括查詢字符串
回答
這應該得到公正的東西(隨意添加附加議定書):
@"(https?|ftp|file)\://[A-Za-z0-9\.\-]+(/[A-Za-z0-9\?\&\=;\+!'\(\)\*\-\._~%]*)*"
真正的困難是找到結束。現在,這種模式依賴於找到無效字符。除域名之外的字母,數字,連字符或句點之外的任何內容,除此之外的內容除正斜槓(/),問號(?),&符號(&),等號(=),分號(;),加號(+),感嘆號(!),撇號/單引號('),打開/關閉括號,星號(*),下劃線(_),波浪號(〜)或百分號)之後的域名。
注意,這將使無效的網址,像
http://../
而且它的URL後,便拿起東西,如在此字符串:
也許你應該嘗試http://www.google.com。
其中"http://www.google.com."
(與尾隨期間)將匹配。
這也將錯過沒有用協議規範(開始具體地,第一組括號內的協議。例如,它會錯過這個字符串的URL網址:
也許你應儘量www.google.com。
這是很難得到每一個案件沒有一些定義好邊界。
不能正常工作...請參閱此處的響應:http://stackoverflow.com/questions/9125016/get-url-from-a-text – kape123 2012-05-10 07:54:17
@ kape123:「不工作」不是很有幫助。我明確指出了它的缺點。它按照所述的方式工作是否還有其他一些您希望工作的案例不適用? – 2012-05-11 02:59:45
退房這傢伙的查詢字符串生成器類 -
微軟也有一個UriBuilder,可以幫助你 -
http://msdn.microsoft.com/en-us/library/system.uribuilder.query.aspx
這些對於構建查詢字符串看起來不錯,但JoelFan想要識別URL而不是構建它們。 – thetaiko 2010-02-26 16:54:21
RegexLib有很多有用的東西......
使用ABNF在RFC3986的結束爲起點,以得到它的權利。
這將它們用於Python中的URI驗證;不是你要找的東西,但它應該給你一個方向你應該去的想法: http://gist.github.com/138549
對不起,我還沒有能夠添加評論,但想指出,P爸爸的答案要求稍微調整一下:
@"(https?|ftp|file)\://[a-zA-Z0-9\.\-]+(/[a-zA-Z0-9\?\&\=;\+!'\(\)\*\-\._~%]*)*"
除了顛倒大寫和小寫字符的順序(沒有任何操作)之外,我找不到任何不同的東西,在這樣做的時候,修正了我在'aZ'(小寫)一個'大寫'Z')。下一次,只是指出錯字會更簡單。我會解決它。 – 2010-08-13 16:23:13
- 1. 正則表達式 - 不包括字符
- 2. 正則表達式的字符串,包括換行符
- 3. 從URL正則表達式和javascript得到查詢字符串
- 4. 正則表達式匹配url並忽略查詢字符串
- 5. 正則表達式子串,包括字符串
- 6. 正則表達式匹配包含括號的字符串
- 7. 正則表達式,匹配的字符串也包含括號
- 8. 正則表達式字符串包含
- 9. 正則表達式表達幫助 - 查詢字符串
- 10. 正則表達式 - 包括字符串:java
- 11. 正則表達式不包括一個開始字符串
- 12. 正則表達式匹配字符串,不包括下劃線
- 13. PHP - 方括號中的正則表達式查找字符串
- 14. 正則表達式查找字符串
- 15. 正則表達式包括文字
- 16. 在Java正則表達式中查找括號字符串
- 17. 正則表達式在方括號中查找字符串[]
- 18. 正則表達式查找字符串用引號括起
- 19. URL查詢的正則表達式
- 20. 正則表達式:查找任何包在方括號中的字符串
- 21. 在正則表達式字符括號中包含連字符?
- 22. 正則表達式的正則表達式的Java字符串
- 23. 查詢字符串中查找標籤與正則表達式
- 24. 正則表達式匹配包含子字符串,但不包括子字符串的字符串
- 25. 的Apache 2.4的查詢字符串與正則表達式
- 26. 如何查找字符串包含正則表達式的特殊字符與正則表達式
- 27. 字符串函數(?正則表達式),以從URL字符串中刪除的查詢字符串對
- 28. 正則表達式的JavaScript包括查詢文件名
- 29. .NET查詢字符串值的正則表達式
- 30. 用於檢測查詢字符串的正則表達式
有什麼規則?它們是否會被正確編碼,或者字符串中是否有空格?如果您將添加一個非空白字符的搜索到它的末尾,如果他們將正確編碼幾乎所有您以前應該工作的模式。 – Guildencrantz 2010-02-26 17:02:55