preg_replace('/(\d+)\s?-\s?(\d+)\s(.*)$/',"$1 - $2<br>\n$3\n",$sträng);
du kan testa med
$strings = array("7 - 14 jun","7-14 jun");
foreach ($strings as $str) { echo preg_replace('/(\d+)\s?-\s?(\d+)\s(.*)$/',"$1 - $2<br>\n$3\n",$str); }
Det ska fungera.
Mönstret '/(\d+)\s?-\s?(\d+)\s(.*)$/' matchar bara de två fall du listade, $ sist i mönstret går på radslut också så kommer det nåt mer efter "jun" i exemplen kommer det inte matcha!