Поиск в списке шаблонов

У меня есть список таких объектов:

    {
       "pattern": "Mozilla/5.0 (*Mac OS X 10?4*) AppleWebKit/* (KHTML, like Gecko) Chrome/46.*Safari/*",
       "name": "Macintosh",
       "brand": "Apple"
    }
    {
        "pattern": "Mozilla/5.0 (*Windows NT 5.1*rv:46.0*) Gecko/*/",
        "name": "Windows",
        "brand": "Microsoft"
  }

или вот так (тоже самое, но в регулярных выражениях):

{
    "pattern": "mozilla/5\.0 \(.*linux.*android.4\.4.*gxt_dongle_3188 build/.*\) applewebkit/.* \(khtml, like gecko\) version/.* chrome/.*safari/.* bdbrowserhd_i18n/1\.(\d).*",
     "name": "Macintosh",
     "brand": "Apple"
}

Это словарь пользовательских агентов браузера с 7000 наименований. У меня есть строка агента пользователя, например:

"Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome/46.0.2490.86 Safari/537.36"

И мне нужно как можно быстрее найти название и марку. Теперь я разбил словарь на куски (100 шаблонов) и приклеил к одному большому регулярному выражению. После этого я пытаюсь подобрать пользовательский агент этого большого регулярного выражения. Если подобрано - я хожу по всем пунктам этого куска.

Вы бы порекомендовали какой-нибудь движок БД, который может помочь мне в этом? Или просто алгоритм, который может помочь мне сделать это быстрее?

0 ответов

Другие вопросы по тегам