我想解析User-Agent:
HTTP标头中的一些信息。问题是我在同一个HTTP请求中得到两个User-Agent:
HTTP头:
CONNECT www.facebook.com:443 HTTP/1.1
Host: www.facebook.com
Proxy-Connection: keep-alive
User-Agent: Mozilla/5.0 (http://iim.com/a.jph) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.
CONNECT www.facebook.com:443 HTTP/1.1
Host: www.facebook.com
Proxy-Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.
CONNECT www.facebook.com:443 HTTP/1.1
我希望正则表达式匹配非http部分,例如 Windows NT 6.1; WOW64 即可。流量分析器软件我正在使用java正则表达式引擎。
我的尝试
User-Agent:\s+.*?\((.*?)\)
它匹配两者;我想跳过它的http部分。
答案 0 :(得分:2)
使用否定前瞻来阻止http:
的匹配User-Agent:\s+.*?\((?!http)(.*?)\)
虽然您可能希望将.*?
更改为否定类:
User-Agent:[^(]+\((?!http)([^)]+)\)