pues eso no se hace con preg_match se hace con puros substr() y strlen()
con el strlen() ves cuantos caracteres tiene la cadena... por ej
Código PHP:
$cadena = "hoy es viernes";
//echo strlen($cadena);
//devolvera el numero 14
//despues solo es cosa de hace run if
if ($cadena > 20)
{
echo subtr("$cadena", 0, 20). " more...";
}
else
{
echo "$cadena";
}
o sea si me paso de los 20 caracteres corta en 20 y pongo el more si no muestro la cadena completa :) sera eso lo que necesitas....