【问题标题】:Extract Url using Regex使用正则表达式提取 URL
【发布时间】:2012-07-29 20:39:03
【问题描述】:

我已经搜索了至少 2 小时,但我找不到任何模式来使用正则表达式提取以下网址。我使用了许多文章中描述的太多模式。但我找不到有用的东西。

例如:如下模式的网址。

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 模式。 请,任何建议都会有所帮助。

【问题讨论】:

  • 从哪里提取它们?从中提取什么?
  • 什么样的字符串?有什么例子吗?
  • @Oded 例如 WebRequest 标头包含 Host : 'google.com'。我想从 WebRequest 标头中提取它们。
  • 这仍然不是很丰富 - 如果你有标题,我假设你可以解析包含 URL 的特定标题。此外,正则表达式应针对正在搜索的数据进行定制,因此如果没有完整的输入和输出示例,很难给您一个好的答案。
  • 什么不起作用?你还没有给出问题的完整描述。如果没有我问过的完整详细信息,我无法给你任何答案(你只举了一个例子,没有解释预期的输出,也没有给出更复杂的例子) .

标签: c# .net regex


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    萨拉姆。试试这个:

    https?://[^\s]+
    

    【讨论】:

      猜你喜欢
      • 2018-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-28
      • 2023-03-27
      相关资源
      最近更新 更多