Найти строку как минимум с n совпадающими элементами
У меня есть список номеров, которые я хочу найти по крайней мере 3 из... вот пример
У меня большой список номеров в базе данных sql в формате (например)
01-02-03-04-05-06
06-08-19-24-25-36
и т. д. в основном 6 случайных чисел от 0 до 99.
Теперь я хочу найти строки, в которых встречается как минимум 3 из набора заданных чисел. Например:
дано: 01-02-03-10-11-12 вернуть строки, в которых хотя бы 3 из этих чисел. например
01-05-06-09-10-12 would match
03-08-10-12-18-22 would match
03-09-12-18-22-38 would not
Я думаю, что мог бы быть какой-то алгоритм или даже регулярное выражение, которое могло бы соответствовать этому... но мой недостаток опыта учебника информатики сбивает меня с толку, я думаю.
Нет, это не домашнее задание! Это для реального применения!
Я развиваюсь в ruby, но любой языковой ответ был бы оценен
1 ответ
Вы можете использовать замену строки для замены -
с |
превратить 01-02-03-10-11-12
в 01|02|03|10|11|12
, Затем оберните это так:
((01|02|03|10|11|12).*){3}
Это позволит найти любую из пар цифр, а затем игнорировать любое количество символов... 3 раза. Если это соответствует, тогда успех.