[英]Regex for URL C#
在我的C#程序中,我編寫了一個Google搜索功能,該功能的工作原理是從每個頁面獲取源代碼並通過正則表達式獲取URL。
我實際的正則表達式是:
(?:(?:(?:http)://)(?:w{3}\\.)?(?:[a-zA-Z0-9/;\\?&=:\\-_\\$\\+!\\*'\\(\\|\\\\~\\[\\]#%\\.])+)
目前,這很好用,但是我得到的網址例如為http://www.example.com/forums/arcade.php?efdf=332
在這種情況下,我只想獲取沒有末尾?efdf=332
的URL。
那么我該如何更改正則表達式呢?
http://(?:www\.)?[a-zA-Z0-9/;&=:_$+!*'()|~\[\]#%.\\-]+
與您的正則表達式相同(我已刪除了很多不必要的內容),但是在之前停止匹配鏈接?
。
在C#中:
Regex regexObj = new Regex(@"http://(?:www\.)?[a-zA-Z0-9/;&=:_$+!*'()|~\[\]#%.\\-]+")
也就是說,我不確定這是否是匹配URL的好方法( https
, ftp
, mailto
等如何?)
您可以使用Uri
類訪問URL的各個部分,並從末尾刪除查詢字符串,或者連接所需的部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.