2

我想从User-Agent:HTTP 标头中解析一些信息。问题是我User-Agent:在同一个 HTTP 请求中获得了两个 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;哇64。我正在使用 java regex 引擎的流量分析器软件。

我的尝试

User-Agent:\s+.*?\((.*?)\)

两者都匹配;我想跳过它的 http 部分。

4

1 回答 1

2

使用负前瞻来防止 http 的匹配:

User-Agent:\s+.*?\((?!http)(.*?)\)

尽管您可能希望将.*?negated classes 更改为:

User-Agent:[^(]+\((?!http)([^)]+)\)
于 2013-09-26T19:46:39.920 回答