найти строку как минимум с n совпадающими элементами - PullRequest
0 голосов
/ 12 июня 2011

У меня есть список чисел, которые я хочу найти как минимум 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 Ответ

3 голосов
/ 12 июня 2011

Вы можете использовать замену строки, чтобы заменить - на |, чтобы превратить 01-02-03-10-11-12 в 01|02|03|10|11|12. Затем оберните это так:

((01|02|03|10|11|12).*){3}

Эта команда найдет любую из пар цифр, а затем проигнорирует любое количество символов ... 3 раза. Если это соответствует, то успех.

...