【发布时间】:2015-07-29 15:22:51
【问题描述】:
如果 UA 包含 Mobile 但不包含 Android,我需要匹配 UA。我试过了
Windows Phone|WPDesktop|BlackBerry|Opera Mini|Opera Mobi|Silk\/|Kindle|(?!.*Android).*Mobile.*|SymbianOS
但它并不总是有效。
另外,如何排除“Windows”和“Android”? (考虑到 Windows 把自己伪装成 Android 和 iPhone……)
编辑:一些测试字符串(android、iphone、wp、其他):
Mozilla/5.0(Linux;Android 4.1.2;GT-I8190N 构建/JZO54K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.94 Mobile Safari/537.36
Mozilla/5.0(iPhone;CPU iPhone OS 7_1 像 Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D167 Safari/9537.53
Mozilla/5.0(移动;Windows Phone 8.1;Android 4.0;ARM;Trident/7.0; 触碰;房车:11.0; IEMobile/11.0;诺基亚; Lumia 930) 喜欢 iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537
UCWEB/2.0(Symbian;U;S60 V5;en-US;Nokia700)U2/1.0.0 UCBrowser/9.2.0.336 U2/1.0.0 移动版
感谢@Avinash Raj:
所有手机:
^(?:.*(Mobile|Android|iPhone|Windows Phone|WPDesktop|RIM|BlackBerry|Opera Mini|Opera Mobi|Silk\/|Kindle|Symbian).*)$
仅限 iOS:
^(?:(?!.*?(?:Windows|Android)).*?iPhone.*)$
仅限安卓:
^(?:(?!.*?(?:Windows)).*?Android.*)$
除了 Android 和 iOS:
^(?:.*Windows Phone.*|.*WPDesktop.*|.*RIM.*|.*BlackBerry.*|.*Opera Mini.*|.*Opera Mobi.*|.*Silk\/.*|.*Kindle.*|(?!.*?(?:iPhone|Android)).*?Mobile.*|.*Symbian.*)$
【问题讨论】:
-
请提供您不想匹配的测试字符串(用户代理)(以及您想要匹配的),并请改进“并不总是有效”的描述
标签: regex