Finden Sie eine Zeichenfolge mit mindestens N passenden Elementen
-
27-10-2019 - |
Frage
Ich habe eine Liste von Zahlen, die ich mindestens 3 finden möchte ... Hier ist ein Beispiel
Ich habe eine große Liste von Zahlen in einer SQL -Datenbank im Format von (zum Beispiel)
01-02-03-04-05-06
06-08-19-24-25-36
etc etc im Grunde genommen 6 Zufallszahlen zwischen 0 und 99.
Jetzt möchte ich die Saiten finden, in denen mindestens 3 einer Reihe gegebener Zahlen auftreten. Zum Beispiel:
Gegeben: 01-02-03-10-11-12 geben die Zeichenfolgen mit mindestens 3 dieser Zahlen zurück. z.B
01-05-06-09-10-12 would match
03-08-10-12-18-22 would match
03-09-12-18-22-38 would not
Ich denke, dass es vielleicht einen Algorithmus oder sogar einen regelmäßigen Ausdruck geben könnte, der damit übereinstimmt ... aber mein Mangel an Informatik -Lehrbucherlebnis ist, denke ich.
Nein - das ist keine Hausaufgabenfrage! Dies ist für eine tatsächliche Anwendung!
Ich entwickle in Ruby, aber jede Sprachantwort würde geschätzt
Lösung
Sie können einen String -Ersatz verwenden, um ersetzt zu werden -
mit |
drehen 01-02-03-10-11-12
hinein 01|02|03|10|11|12
. Dann wickeln Sie es so ein:
((01|02|03|10|11|12).*){3}
Dies findet eines der Ziffernpaare und ignoriert dann eine beliebige Anzahl von Zeichen ... dreimal. Wenn es übereinstimmt, dann Erfolg.