Ответов: 8 Просмотров: 5427
|
Доброго времени суток.
Есть диапазон номеров от 400000 до 499999 (400000-499999). Нужно составить из этого диапазона регулярное выражения вида '^4([0-9]{5})$'. Данное выражение идёт в базу для выборки совпадений.
Как составить регулярку на диапазоне указанном выше я представляю, но как быть к примеру с диапазоном 479949-549499.
Мысль о цикле отпала, так как даже диапазон с разницей в 1000 номеров нагрузит систему по самый не балуй, ибо поиск по шаблону должен обработать более миллиона строк, а диапазонов может быть более тысячи. Сравнение строк по принципу "больше-меньше" тоже не является решением задачи, так как значения в базе могут содержать в себе всевозможные префиксы. Я вижу решение только в составлении регулярок на основе диапазонов.
В данный момент все диапазоны записаны вручную. И хотелось бы автоматизировать процесс создания регулярных выражений, так как диапазоны номеров постоянно добавляются и изменяются.
Пните меня пожалуйста в правильную сторону. Заранее спасибо |