(?<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
有可能是: "/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
(?<oAct>(?:POST|GET)\s+(?<vURL>(http[s]?://)?[@#?%:&=+-/\(\)\.\w]+)\s+(?<oHvs>HTTP/1\.\d))\s*
(?<oAct>(?:POST|GET)\s+(?<vURL>[@#?%:&=+-/\(\)\.\w]+)\s+(?<oHvs>HTTP/1\.\d))\s*
(?<oAct>(?:POST|GET)\s+(?<vURL>[^\s]+)\s+(?<oHvs>HTTP/1\.\d))\s*