У меня есть высокопроизводительное приложение, которое работает с URL. Для каждого URL необходимо получить соответствующие настройки из предопределенного пула. Каждый объект настроек связан с шаблоном URL, который указывает, какие URL должны использовать эти настройки. Соответствующие правила следующие:
- Шаблон соответствия "google.com" должен соответствовать всем URL-адресам, указывающим на домен Google (таким образом, сопоставляются maps.google.com и www.google.com/match).
- "*. Google.com" должен соответствовать всем URL-адресам, указывающим на поддомен google.com (таким образом, maps.google.com соответствует, но google.com и www.google.com не соответствуют).
- "maps.google.com" должен соответствовать всем URL-адресам, указывающим на этот конкретный поддомен.
Помимо приведенных выше правил, каждое правило соответствия может содержать путь, что означает, что часть пути URL-адреса должна начинаться с пути правила соответствия. Итак: «* .google.com / maps» соответствует «maps.google.com/maps», но не «maps.google.com/advanced".
Как видите, вышеприведенные правила частично совпадают. В случае, если существуют два правила, которые соответствуют одному и тому же URL-адресу, должен применяться самый конкретный. Приведенный выше список ранжируется от наименее конкретного к наиболее конкретному.
Кажется, это такая стандартная проблема, что я надеялся использовать готовую библиотеку, а не программировать себя. Google показывает несколько вариантов, но без четкого способа выбора между ними. Что бы вы посоветовали в качестве хорошей библиотеки для этой задачи?
Спасибо,
Боаз