问题描述
|
我有一个号码清单,我希望至少找到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次。如果匹配,则成功。