使用正则表达式和PHP捕获字符串中模式的每个实例

时间:2016-05-15 16:29:01

标签: php regex

我需要捕获与字符串中的模式匹配的所有实例。

例如,要匹配的模式是

  

MM / YYYY

,字符串是

  

03/201408/201511/201203/201408/201511/201203/201408/201511/2012

目前,我有这种正则表达式

(0[1-9]|1[0-2])/[0-9]{4}

但是它与MM / YYYY格式的所有日期都不匹配。

1 个答案:

答案 0 :(得分:1)

似乎问题在于PHP中的正则表达式使用。

以下是如何获取这些子字符串的方法:

$re = '~(?:0[1-9]|1[0-2])/[0-9]{4}~'; 
$str = "03/201408/201511/201203/201408/201511/201203/201408/201511/2012"; 
preg_match_all($re, $str, $matches);
print_r($matches[0]);

请参阅PHP demo

我建议使用非捕获组,以免混乱不必要的值。