PHP正则表达式与浏览器代理字符串一起使用

Act*_*ist 4 php regex

我需要帮助再次使用我正在尝试做的一些正则表达式(仍在重复学习中).

我再次尝试通过解析用户代理来学习.现在尝试做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
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用正常表达式将Firefox版本从UA中提取出来.

以下是我想要的规则:

  1. 版本总是在"firefox"字符串之后("Firefox"可以是任何字符情况).
  2. 版本字符串可以在"/"或空格之后或"("或甚至没有任何内容)时开始.
  3. 版本字符串以空格或字符串结尾或通过右括号或分号结束.
  4. 在极少数情况下,不提供该版本(参见上一个UA).正则表达式必须匹配,但返回一个空字符串作为版本(如果可能).

我想是的.如果有人可以帮助它会很棒!

cas*_*nca 5

这样的事情应该有效:

/Firefox[ \(\/]*([a-z0-9\.\-]+)/i
Run Code Online (Sandbox Code Playgroud)

  • 对于#4,将+转换为*,如下所示:`/ Firefox [\(\ /]*([a-z0-9 \.\ - ]*)/ i` (3认同)