Мне снова нужна помощь с некоторыми регулярными выражениями, которые я пытаюсь сделать (все еще в процессе интенсивного обучения).
Опять я пытаюсь учиться, анализируя пользовательские агенты.Попытка сделать Firefox сейчас ...
Примите во внимание следующие UA:
- Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.15) Gecko/2009101601 Firefox 2.1 (.NET CLR 3.5.30729)
- Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.20) Gecko/20081217 Firefox(2.0.0.20)
- Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1) Gecko/20090624 Firefox/3.1b3;MEGAUPLOAD 1.0 (.NET CLR 3.5.30729)
- Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.3a3pre) Gecko/20100306 Firefox3.6 (.NET CLR 3.5.30729)
- Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.19) Gecko/20081202 Firefox (Debian-2.0.0.19-0etch1)
- Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 (.NET CLR 3.5.30729)
- Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.13) Gecko/20080313 Firefox
Я пытаюсь создать регулярное выражение, которое извлечет версию Firefox из UA.
Вот правила, которые я хочу:
- Версия всегда после строки «firefox» («Firefox» может быть в любом символьном случае).
- Строка версии может начинаться либо сразу после «/», либо пробела, либо с «(», либо даже без чего-либо.
- Строка версии заканчивается пробелом или концом строки или закрывающей скобкой илиточка с запятой.
- В некоторых редких случаях версия не указана (см. последний UA). Регулярное выражение должно соответствовать, но возвращать пустую строку в качестве версии (если возможно).
Iдумаю, вот и все. Если кто-то может помочь, это было бы здорово!