Javascript 使用正则表达式检索浏览器名称

Javascript 使用正则表达式检索浏览器名称,javascript,regex,Javascript,Regex,javascript中的RegExp有问题。我只想返回版本号和浏览器名,即“firefox 22.0”或“msie 8.0” 上面的表达式不太适用。我正在尝试从字符串中匹配浏览器名称和版本号 Mozilla/5.0(Windows NT 5.1;rv:22.0)Gecko/20100101 Firefox/22.0 Mozilla/4.0(兼容;MSIE 8.0;Windows NT 5.1;Trident/4.0 我已经尝试(firefox | msie | chrome | safari)\

javascript中的RegExp有问题。我只想返回版本号和浏览器名,即“firefox 22.0”或“msie 8.0”

上面的表达式不太适用。我正在尝试从字符串中匹配浏览器名称和版本号

Mozilla/5.0(Windows NT 5.1;rv:22.0)Gecko/20100101 Firefox/22.0 Mozilla/4.0(兼容;MSIE 8.0;Windows NT 5.1;Trident/4.0

我已经尝试(firefox | msie | chrome | safari)\s(\d+)(./\/)(\d+)来匹配反斜杠
或(firefox | msie | chrome | safari)\s(\d+)(\d+)表示任何字符,但不表示骰子。

正则表达式区分大小写。通过添加
(?i)
或您使用的正则表达式引擎提供的其他方式忽略大小写

(?i)(firefox|msie|chrome|safari)[/\s]([\d.]+)
下面是Python示例

代理='Mozilla/5.0(Windows NT 5.1;rv:22.0)Gecko/20100101 Firefox/22.0 Mozilla/4.0(兼容;MSIE 8.0;Windows NT 5.1;Trident/4.0;.NET CLR 2.0.50727;.NET CLR 3.0.4506.2152;.NET CLR 3.5.30729;.NET CLR 1.1.4322;.NET4.0C' >>>[m.group(1),m.group(2)]代表在re.finditer(r'(?i)(firefox | msie | chrome | safari)[\/\s]([\d.]+)',代理中的m] [['Firefox','22.0',['MSIE','8.0']] 在Javascript中:

var-agents='Mozilla/5.0(Windows NT 5.1;rv:22.0)Gecko/20100101 Firefox/22.0 Mozilla/4.0(兼容;MSIE 8.0;Windows NT 5.1;Trident/4.0;.NET CLR 2.0.50727;.NET CLR 3.0.4506.2152;.NET CLR 3.5.30729;.NET CLR 1.4322;.NET4.0C';
agent.match(/(firefox | msie | chrome | safari)[/\s]([\d.]+)/ig)
=>[“Firefox/22.0”、“MSIE 8.0”]

你的标题并没有真正反映你的问题。它是哪种语言的(因为正则表达式差异很大)?对不起,我天真地认为正则表达式是通用的,因此没有提到我在使用JavaScript。@GhoulFool,添加了一个JavaScript版本。请查看。
(?i)(firefox|msie|chrome|safari)[/\s]([\d.]+)