我的最终目标是使用正则表达式匹配IE 7的HTTP_USER_AGENT字符串以及较低的PLUS Opera 9.0及更低版本。
这是因为这些浏览器不支持CSS“box-sizing”
我不是真正的正则表达式语法专家。
的“http用户代理”列表(MSIE [2-7]\.+)|(rv:1\.8\.1\.1+)|(Opera/[4-8]\.+)|(Opera [4-8]\.+)|(Opera\/9\.00+)
这是我用来匹配上述列表中所有HTTP_USER_AGENTS的正则表达式。 (我不确定该列表是否包含所有可能的用户代理。可能不是)
但无论如何,正则表达式与所有人匹配。但它也匹配一些较新版本的Opera
E.G。
Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i686; de) Opera 10.10
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 6.0; tr) Opera 10.10
Mozilla/4.0 (compatible; MSIE 6.0; Linux i686 ; en) Opera 9.70
Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux x86_64; en) Opera 9.60
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 9.52
所以我走了一步。区别因素是包含“MSIE 6”的ALL OPERA版本9 PLUS。最后还包含“Opera”。
所以我需要修改我的正则表达式以匹配所有“MSIE 6”。不包含“OPERA”的字符串
正如我所说,我目前的正则表达可能不是最好的。但是,嘿,我是正则表达式的新手!
由于
亚历
答案 0 :(得分:1)
您可以使用否定前瞻与Opera
后跟的MSIE值不匹配,例如:
MSIE [2-7]\.\d+(?!.*Opera)|Opera[ /](?:[4-8]\.\d+|9\.00)|Opera$