(?<oAct>(?:POST|GET)\s+(?<vURL>[http\:\/\/|https\:\/\/|\/\.\w]+)\s+(?<oHvs>HTTP/1\.\d))\s*这个正则是取HTTP请求头的数据的。 现在的问题是 中间 vURL这部分,是取超连接地址的, 
有可能是:   "/news/haha.aspx" 这样的 
也有可能是  "http://www.csdn.com:90/down/luc.aspx" 或者只是一个 "/"以上情况都正常  但是当超链接复杂些就有问题, 比如再URL中出现参数或者其他符号 比如 %  + - & # @ ()等等  正则就出现问题了,匹配不出结果。请帮忙修改一下正则, 能匹配这些特殊字符 ,最好也包括中文。
可参考http head :GET /news/list.aspx?cid=2+34&wd=%e3%d2%20%7c%b5 HTTP/1.1
HOST: news.baidi.com:8080

解决方案 »

  1.   

    搞定:(?<oAct>(?:POST|GET)\s+(?<vURL>[http\:\/\/|https\:\/\/|\/\.\w- ./?%&=+]+)\s+(?<oHvs>HTTP/1\.\d))\s*
      

  2.   

    LS被LZ误导了。
    (?<oAct>(?:POST|GET)\s+(?<vURL>(http[s]?://)?[@#?%:&=+-/\(\)\.\w]+)\s+(?<oHvs>HTTP/1\.\d))\s* 
      

  3.   

    再简化,这个(http[s]?://)?根本是不起作用的,不要它了。
    (?<oAct>(?:POST|GET)\s+(?<vURL>[@#?%:&=+-/\(\)\.\w]+)\s+(?<oHvs>HTTP/1\.\d))\s*
      

  4.   

    再简化:
    (?<oAct>(?:POST|GET)\s+(?<vURL>[^\s]+)\s+(?<oHvs>HTTP/1\.\d))\s*