- preg_replace_callback: documentation ( source)
<?php
$string = "2007 Chevy Silverado Pickup new body style models 2008-2013 Chevy Silverado All Models 2014 Chevy Silverado 2500HD 3500HD 2007 GMC Sierra Pickup new body style models 2008 - 2013 GMC Sierra All Models 2014 GMC Sierra 2500HD 3500HD 2007-2013 Chevy Tahoe 2007-2013 Chevy Suburban 2007 - 2013 Chevy Avalanche 2007-2013 GMC Yukon Yukon XL Yukon Denali";
echo preg_replace_callback('~(\s*)(19[5-9]\d|20[0-4]\d)(?:\s*-\s*(19[5-9]\d|20[0-4]\d))?(?=\s)~', function($m) {
//var_export($m); // un-comment if you want to see each $m array
//echo "\n---\n";
return (strlen($m[1]) ? "\n" : "")
. "<strong>*{$m[2]}"
. (isset($m[3]) ? " - {$m[3]}" : "")
. "</strong>";
},
$string);