PHP preg_match_all regex

PHP preg_match_all regex,php,regex,preg-match-all,Php,Regex,Preg Match All,如果我有这样一个字符串:10/10/12/12 我正在使用: $string = '10/10/12/12'; preg_match_all('/[0-9]+\/[0-9]+/', $string, $results); 这似乎只与10/10和12/12匹配。我还想匹配10/12。是因为在匹配了10/10之后,从图片中删除了它吗?那么在第一次匹配之后,它将只匹配/12/12中的内容 如果我想匹配所有10/10,10/12,12/12,我的正则表达式应该是什么样子?谢谢 编辑:是我干的 $arr

如果我有这样一个字符串:
10/10/12/12

我正在使用:

$string = '10/10/12/12';
preg_match_all('/[0-9]+\/[0-9]+/', $string, $results);
这似乎只与
10/10
12/12
匹配。我还想匹配
10/12
。是因为在匹配了
10/10
之后,从图片中删除了它吗?那么在第一次匹配之后,它将只匹配
/12/12
中的内容

如果我想匹配所有
10/10
10/12
12/12
,我的正则表达式应该是什么样子?谢谢

编辑:是我干的

$arr = explode('/', $string);
$count = count($arr) - 1;
$newarr = array();
for ($i = 0; $i < $count; $i++)
{
    $newarr[] = $arr[$i].'/'.$arr[$i+1];
}
$arr=explode('/',$string);
$count=计数($arr)-1;
$newarr=array();
对于($i=0;$i<$count;$i++)
{
$newarr[]=$arr[$i]./'.$arr[$i+1];
}

我建议不要使用正则表达式。例如,您可以使用
explode
首先在斜杠上拆分。然后遍历这些部分,检查两个连续的部分,这两个部分都只由数字组成


正则表达式无法工作的原因是匹配使用了它匹配的字符。搜索下一个匹配从上一个匹配结束后开始

如果您真的想使用正则表达式,您可以使用零宽度匹配,例如前瞻,以避免使用字符,并在前瞻中放置捕获匹配

'#[0-9]+/(?=([0-9]+))#'

在线查看:谢谢,我编辑了我的帖子来展示我现在是如何做到的。这就是你的意思吗?好像有用。@小丑:是的。你没有检查这些部件是否是数字,但是如果你可以假设它们是你的代码,那么我的ATM就可以了。ATM应该可以避免数字检查,但以后可能会考虑这样做,以防万一,因为它也显示了替代的正则表达式。我学到了一些新东西,所以谢谢你提出的有趣的问题。:)