2012-02-15 2 views
1

Синтаксический заголовок агента пользователя, мне нужно, чтобы узнать, если я имею дело с IE-8 или выше:Использование Regex для разбора браузера-версии от User-Agent-заголовка

<= IE8 

Таким образом, регулярное выражение должно возвращать правда, в следующих случаях:

(compatible; MSIE 8.0;...) 
(compatible; MSIE 7.0;...) 
etc. 

следующие должны давать ложные:

(compatible; MSIE 9.0;...) 

Нижеследующая REGE x не работает:

"MSIE [6-8]\." 
+0

Это работает для меня: "(? I). * MSIE [5-8] \ .. *" – recalcitrant

ответ

4

Ваш шаблон должен работать, если вы избегаете обратную косую черту, или вы имели в виду JavaScript ?. (В этом случае он должен работать)

"(?i)MSIE\\s+[5-8]\\.\\d+" 

Объяснение:

  • (?i) делает случай совпадения нечувствительным
  • MSIE соответствует строке MSIE
  • \\s+ один или несколько пробелов
  • [5-8] матчи цифры от 5 до 8
  • \\. матча точка
  • \\d+ один или более цифр
+0

Он по-прежнему не работает, если я использую Java .regex (с Scala): val ieMatcher = "" "(? i) MSIE \\ s + [5-8] \\. \\ d +" "". r.pattern def isIE (str: String) = ieMatcher .matcher (ул) .matches() – recalcitrant

0

Вы можете использовать группы символов для соответствия версиям, f.i. [678]\.0.

Смежные вопросы