Хотя регулярное выражение не очень хорошее решение для анализа даты в формате ГГГГММДД, давайте рассмотрим , почему ваш шаблон не работает.
Ваш шаблон \d{4}\\d{2}\\d{2}\
говорит:"соответствует 4 цифрам (\d{4}
), за которыми следует символ обратной косой черты (\\
), затем дважды буква d (d{2}
), затем еще одна обратная косая черта (\\
) и затемнаконец, еще два d (d{2}
). "
Как вы уже могли догадаться, вам не нужны двойные слеши!
\d{4}\d{2}\d{2}
Будет соответствовать 4 цифры, а затемна 2 цифры, а затем еще на 2 цифры.
Кроме того, вы не указываете групп захвата , поэтому ваши подшаблоны никогда не будут заполнены.Вероятно, вы имели в виду:
(\d{4})(\d{2})(\d{2})
Смотрите это в действии на http://www.ideone.com/iAy7K. Обратите внимание, что в вашем случае действительно нет никаких причин указывать флаг PREG_OFFSET_CAPTURE
(который возвращаетположение каждого совпадения) или 0
для смещения.