【发布时间】:2020-04-10 11:59:51
【问题描述】:
嘿社区我有一个问题,我正在使用正则表达式,而不是获得完整版本,我得到以下 _3 我应该得到 13_3
这就是我使用表达式的方式 -
$useragent = "Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148";
$pattern = '/os ([0-9]?.[0-9]?[0-9]?[0-9]?[0-9])*/';
preg_match($pattern,strtolower($useragent),$m);
这就是我在 Android 上使用它的方式 -
$useragent = "Mozilla/5.0 (Linux; Android 8.1.0; moto e5 play Build/OPGS28.54-53-8-11; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.162 Mobile Safari/537.36";
$pattern = '/android ((\d+|\.).[^ ,);]+)/';
preg_match($pattern,strtolower($useragent),$m);
我做错了什么?
【问题讨论】:
-
可能是
preg_match('/os ([0-9]+(?:_[0-9]+)?)/i', $useragent, $m)? -
是的,但这不适用于例如 13_3_3
-
垫子,我在回答中解决了这个问题。
标签: php regex preg-match