I need help again with some regular expressions I'm trying to do (still in hard training).
Again I try to learn by analyzing user agents. Trying to make Firefox now ...
Consider these UAs:
- 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
I am trying to make a regex that will extract a version of Firefox from UA.
Here are the rules I want:
- The version is always after the line "firefox" ("Firefox" can be a character in any case).
- The version line can begin either immediately after the "/", or with the help of "(or even without anything).
- The version line ends with a space or the end of the line, or with a closing bracket or semicolon.
- In some rare cases, a version is not provided (see latest UA). The regular expression should match, but returns an empty string as version (if possible).
I think so. If someone can help, it will be great!
source share