找到至少包含n个匹配元素的字符串

问题描述

| 我有一个号码清单,我希望至少找到3个号码... 这是一个例子 我在sql数据库中以(例如)的格式有大量数字
01-02-03-04-05-06
06-08-19-24-25-36
等 基本上是0到99之间的6个随机数。 现在,我要查找一组给定数字中至少有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
我以为可能会有某种算法甚至是正则表达式都可以匹配这个……但是我缺乏计算机科学教科书的经验使我感到困惑。 不-这不是作业问题!这是实际应用! 我正在开发红宝石,但是任何语言的答案都将不胜感激     

解决方法

        您可以使用字符串替换将
-
替换为
|
,以将
01-02-03-10-11-12
转换为
01|02|03|10|11|12
。然后像这样包装它:
((01|02|03|10|11|12).*){3}
这将找到任何数字对,然后忽略任何数量的字符... 3次。如果匹配,则成功。