正则表达式检测IE9及以下?

时间:2014-12-02 00:33:41

标签: regex user-agent

我正在尝试用Java编写一个正则表达式模式来检测用户代理是否小于或等于Internet Explorer 9.这里有很多例子:

http://www.useragentstring.com/pages/Internet%20Explorer/

主要要点是用户代理字符串中将有一个字符串,名为:" MSIE XXXX)。我目前的正则表达式是:

MSIE ([1-9]|9)

除了在MSIE 10.0或MSIE 11.0匹配时出现问题,这似乎有效。关于如何只匹配1-9而不是10.0或11的任何想法?

2 个答案:

答案 0 :(得分:2)

在旧版本中,主版本号后总是有一个点,您可以在正则表达式中使用它:

MSIE [1-9]\.

编写它的另一种方法是期望一个介于1和9之间的数字,后跟一个非数字char:

MSIE [1-9][^0-9]

答案 1 :(得分:1)

仅匹配5-9而不是1-9。使用IE 4及以下版本的人几乎有0人。