Конечно, вы можете preg_match_all
:
$matches = array();
preg_match_all('~(?P<date>\d{4}-\d{2}-\d{2})\s*(?P<text>.*)~ms', $subject, $matches);
Возможно, нужно немного вмешаться, чтобы соответствовать вашему контенту.
Результат в структуру, такую как
matches => {
date(3) => {"2012-01-28", ... }
...
text(3) => {"text text text", ...}
, который можно легко использовать или преобразовать в пользовательскую структуру.