使用Regex提取Url

时间:2012-07-29 20:39:04

标签: c# .net regex

我一直在搜索至少2小时但我找不到任何使用正则表达式提取Urls的模式。我选择了许多文章中描述的太多模式。但我找不到有用的东西。

例如:Urls喜欢以下模式。

http://google.com
http://www.google.com
http://www.image.google.com
http://google.com:8080
http://google.com:8080/default.aspx?param=1
http://google.com/default.aspx?param=1&param1=2

更新:亲爱的朋友们,看起来我必须更详细地解释我的问题,我正在使用TCP组件处理一个简单的代理服务器,我的服务器在传入时侦听特定端口收到的连接。我正在提取并读取所有客户端请求数据。 数据包含标题和内容类型等,如下所示:

GET http://www.bing.com/ HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: en-US,en;q=0.7,fa;q=0.3
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
Accept-Encoding: gzip, deflate
Host: www.bing.com
DNT: 1
Proxy-Connection: Keep-Alive

这些是纯文本,因此我需要查找并提取Url以进行转发操作。

你猜的任何Url模式。 请,任何建议都会有所帮助。

2 个答案:

答案 0 :(得分:3)

https?://[\w\.]+\.\w+(:\d{1,5})?(/[\w?&.=]+)?

答案 1 :(得分:0)

萨拉姆。试试这个:

https?://[^\s]+