Pull to refresh

Comments 14

Я не забыл — в моём регионе его нет и не предвидится в ближайшее время. Как я и говорил цели были весьма скромные и узконаправленные.
Ну я думаю в статье все равно нужно указать. хотя это мое скромное мнение.
Андройд и версия находится довольно просто android[\s]*[0-9._]+
Но не стоит забывать, что это операционная система, а я же рассматривал лишь браузеры и модели и из useragent:

mozilla/5.0 (linux; u; android 1.5; en-us; htc hero build/cupcake) applewebkit/528.5+ (khtml, like gecko) version/3.1.2 mobile safari/525.20.1

мне важно получить htc hero с чем мой код успешно справляется.
отличный велосипед, но есть же wurfl и TerraWurfl которые выполнят разбор за Вас и даже определят разрешение телефона и кучу других параметров.
Как я и написал — на базе wurfl обновляется база данных, но дело в том, что часть сервисов должна работать в оффлайне и с большой нагрузкой. К тому же могу вас заверить, что как минимум 10% из тех параметров, что выдаёт wurfl не соответствует действительности, поэтому изначально было решено сделать свою базу данных (как минимум там приходится хранить оверрайды). А новый ли велосипед или просто бесплатный — не всё ли равно?
К тому же ни один из подобных сервисов не справляется с useragent местного CDMA оператора: pcl45lg040412128160181116193202345932;1;131;10849;472;8465 up.browser/6.2.3.8 (gui) mmp/2.0
Кстати, для сравнения того что в посте с версией файетюна — определение яблочности с версией выглядит так:
(itouch|ip(hone|od)).*?(os\s*(v(er(sion)?)?)?[\s.]*([0-9._]+)|v(er(sion)?)?/?[0-9\._]+)|(iphone.*?mac\sos\s[0-9a-z]+)
> Иногда указывают размеры экрана в пикселях: [0-9]{3}x[0-9]{3}
ничего, что уже дофига мониторов, у которых оба размера 4-х значные?
Useragent, как и всё в мобильных, постепенно идёт к стандартизации. Как вы наверно догадались, размер экрана — не стандартный токен. А значит его можно найти только в старых устройствах (128 — 320 пикселей). Если бы внимательно прочли, то заметили, что всё проходило проверку на реальных данных — всего около 100 000 агентов, а это гораздо больший сегмент чем мне требовалось.

Кстати, если устройств с дисплеями больше 999 пискселей (любой из сторон) дофига, то хотелось бы примеров — я не смог вспомнить ни одного.
С агентом
Alcatel-BH4R/1.0 UP.Browser/6.2.ALCATEL MMP/1.0
ниодна ваша регулярка не пашет
Очень странно. Сейчас проверяю по пунктам:
1. Выбираем useragent: проходит полностью.
2. Определяем токен браузера:UP.Browser/6.2.ALCATEL
3. Определяем профиль и конфигурацию: профиль не указан, так что и проверять нечего
4. Язык: не указан
5. Версия: /1.0, /6.2.AL, /1.0 — собственно то, что и следовало
(слово ALCATEL как часть версии вошло не полностью — можно подправить, если критично, изменив ограничение на буквы с {1,2} на {1,} )
6. размеры экрана в пикселях: не указаны

Модель: alcatel-bh4r

Так что всё работает. Возможно дело в том, что я использую парсер .NET?
чет не срабатывает первая регулярка в php
можешь показать код?
Код слишком разбросанный но всё делается через две функции (возможно загвоздка в Singleline и IgnoreCase):
public static string MakeMatch(Regex expression, string subject)
{
    if (expression == null || string.IsNullOrEmpty(subject) || !expression.IsMatch(subject))
      return String.Empty;
    return expression.Match(subject).Value.Trim();
}
public static Regex MakeRegex(string expression)
{
    return new Regex(expression, RegexOptions.Singleline | RegexOptions.IgnoreCase);
}


* This source code was highlighted with Source Code Highlighter.
Sign up to leave a comment.

Articles