匹配包含要在preg_grep上使用的一组字符串的元素的字符串的模式


Pattern that matches a string containing elements of a group of strings to use on preg_grep

我已经为这个问题绞尽脑汁好几个星期了,却始终没有找到或创造出正确的答案:

假设我有一个包含以下元素的数组:
',1,'
',2,'
',1,2,'
',1,3,'
',1,2,3,'

通过使用PHP的preg_grep函数,我想获得包含元素1或/和2(包括或)的所有可能的组合,但只有1和2,所以基本上在这种情况下我想获得的元素是:

',1,'
',2,'
',1,2,'

任何想法?

谢谢! !

编辑:根据anubhava的要求,我将使用的数据集如下:

, 13598, 13599, 13600, 13601, 13602, 13603, 13604, 13605, 13606,

, 13598, 13599, 13600, 13602, 13603, 13604, 13605, 13606,

, 13599, 13600, 13601, 13602, 13603, 13604, 13605, 13606,

, 13598, 13599, 13600, 13601, 13602, 13604, 13605, 13606,

, 13598, 13599, 13600, 13601, 13603, 13604, 13605, 13606,

, 13598, 13599, 13600, 13601, 13602, 13603, 13604, 13606,

, 13599, 13600, 13602, 13603, 13604, 13605, 13606,

, 13598, 13600, 13601, 13602, 13604, 13605, 13606,

, 13598, 13599, 13600, 13602, 13604, 13605, 13606,

, 13598, 13600, 13601, 13603, 13604, 13605, 13606,

, 13599, 13600, 13601, 13602, 13604, 13605, 13606,

, 13599, 13601, 13602, 13603, 13604, 13605, 13606,

, 13599, 13600, 13601, 13603, 13604, 13605, 13606,

, 13598, 13599, 13600, 13602, 13603, 13604, 13606,

, 13598, 13599, 13600, 13601, 13604, 13605, 13606,

, 13599, 13600, 13601, 13602, 13603, 13604, 13605,

, 13598, 13600, 13602, 13603, 13604, 13605, 13606,

, 13599, 13600, 13601, 13602, 13603, 13604, 13606,

, 13600, 13601, 13602, 13603, 13604, 13605, 13606,

, 13598, 13599, 13603, 13604, 13605, 13606,

, 13599, 13601, 13602, 13603, 13604, 13605,

, 13600, 13601, 13602, 13603, 13604, 13606,

, 13599, 13601, 13603, 13604, 13605, 13606,

, 13598, 13599, 13600, 13604, 13605, 13606,

, 13599, 13601, 13602, 13604, 13605, 13606,

, 13600, 13602, 13603, 13604, 13605, 13606,

, 13598, 13599, 13600, 13602, 13604, 13605,

, 13598, 13599, 13600, 13602, 13604, 13606,

, 13598, 13600, 13602, 13603, 13604, 13606,

, 13598, 13601, 13603, 13604, 13605, 13606,

例如,我正在查找所有我称之为

的"子节点"

, 13598, 13599, 13600, 13601, 13602, 13603, 13604, 13606,

所以基本上所有包含一个或多个数字的列表:

13598, 13599, 13600, 13601, 13602, 13603, 13604, 13606

只有这些数字

您可以在preg_grep:

中使用此正则表达式。
/^,((?:13598|13599|13600|13601|13602|13603|13604|13606),)+$/
<<h3>在线演示/h3>