Мне нужно совместить UA, если он содержит Mobile, но не Android. Я пробовал сRegex: сопоставлять пользовательские агенты, не связанные с андроидом
Windows Phone|WPDesktop|BlackBerry|Opera Mini|Opera Mobi|Silk\/|Kindle|(?!.*Android).*Mobile.*|SymbianOS
Но это не всегда работает.
Кроме того, как я могу исключить как «Windows», так и «Android»? (Учитывая, что Windows, фальсифицирует себя как Android и iPhone ...)
Edit: несколько тестовых строк (андроид, iphone, сор, другие):
Mozilla/5.0 (Linux; Android 4.1.2; GT-I8190N Сложение/JZO54K) AppleWebKit/537,36 (KHTML, как 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, например, Gecko) Версия/7.0 Mobile/11D167 Safari/9537.53
Mozilla/5.0 (Мобильный; Windows Phone 8.1; Android 4.0; РУКА; Trident/7.0; Touch; с.в.: 11,0; IEMobile/11,0; NOKIA; Lumia 930), как iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, как 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 Mobile
решаемые благодаря @Avinash Радж:
Все мобильные телефоны:
^(?:.*(Mobile|Android|iPhone|Windows Phone|WPDesktop|RIM|BlackBerry|Opera Mini|Opera Mobi|Silk\/|Kindle|Symbian).*)$
IOS только:
^(?:(?!.*?(?:Windows|Android)).*?iPhone.*)$
Android только:
^(?:(?!.*?(?:Windows)).*?Android.*)$
Все, кроме Android и IOS:
^(?:.*Windows Phone.*|.*WPDesktop.*|.*RIM.*|.*BlackBerry.*|.*Opera Mini.*|.*Opera Mobi.*|.*Silk\/.*|.*Kindle.*|(?!.*?(?:iPhone|Android)).*?Mobile.*|.*Symbian.*)$
Просьба представить тестовую строку (ПА) вы не хотите, чтобы соответствовать (и такое вы хотите матч) и, пожалуйста, улучшить описание "не всегда работает" –