我需要一些代码来匹配所有不是SP1的IE6版本(Windows XP SP2的一部分,令人困惑)。这是为了无法正确处理它的IE版本关闭gzip。
我想出的最好的是:
MSIE [1-6]\.(?!.*?SV1)
有没有人有更好的模式?上面的正则表达式基本上是先行确保SV1(表示SP1)不存在。
出于测试目的,这不应该匹配:
Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4325)
但这应该:
Mozilla/4.0 (Windows; MSIE 6.0; Windows NT 6.0)
答案 0 :(得分:0)
您的正则表达式可以很好地匹配您正在寻找的用户代理,但您应该知道某些浏览器在其用户代理字符串中具有“MSIE 6.0”以实现兼容性。这是a list of user-agent strings。
答案 1 :(得分:0)
为什么单一的正则表达式,当两个更简单时。伪代码:
if String.matches('\bMSIE [1-6]\b') AND NOT String.matches('\bSV1\b')