我需要帮助再次使用我正在尝试做的一些正则表达式(仍在重复学习中).
我再次尝试通过解析用户代理来学习.现在尝试做Firefox ...
考虑这些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
我正在尝试使用正常表达式将Firefox版本从UA中提取出来.
以下是我想要的规则:
版本总是在"firefox"字符串之后("Firefox"可以是任何字符情况).
版本字符串可以在"/"或空格之后或"("或甚至没有任何内容)时开始.
版本字符串以空格或字符串结尾或通过右括号或分号结束.
在极少数情况下,不提供该版本(参见上一个UA).正则表达式必须匹配,但返回一个空字符串作为版本(如果可能).
我想是的.如果有人可以帮助它会很棒!
这样的事情应该有效:
/Firefox[ \(\/]*([a-z0-9\.\-]+)/i