Попробуйте что-то вроде:
<?php
$post_title = "<!--:en-->English text<!--:--><!--:it-->Italian text<!--:-->";
$regexp = '/<\!--:(\w+?)-->([^<]+?)<\!--:-->/i';
if(preg_match_all($regexp, $post_title, $matches))
{
$titles = array();
$count = count($matches[0]);
for($i = 0; $i < $count; $i++)
{
$titles[$matches[1][$i]] = $matches[2][$i];
}
print_r($titles);
}
else
{
echo "No matches";
}
?>
Печать:
Array
(
[en] => English text
[it] => Italian text
)