Sono andato a cercare nel forum una domanda che avevo fatto tanto tempo fa attinente a questa discussione.
Allora ciò che mi serviva era recuperare l'inizio e la fine di una stringa. Volevo ad esempio recuperare le prime tre parole e volevo che quelle separate dall'apostrofo mi venissero considerate due distinte.
fabi080 mi aveva sfornato queste belle regexp.
Codice PHP:
function firstwords($text, $n) {
return preg_match('/^([^a-z]*[a-z]+){'.$n.'}/i', $text, $matches) ? $matches[0] : $text;
}
function lastwords($text, $n) {
return preg_match('/([a-z]+[^a-z]*){'.$n.'}$/i', $text, $matches) ? $matches[0] : $text;
}
$text = "L'altra questione da risolvere è quella relativa agli apostrofi";
//var_dump(firstwords($text, 4));
//var_dump(lastwords($text, 4));
echo firstwords($text, 3); // Restituisce L'altra questione
echo "
";
echo lastwords($text, 3); // relativa agli apostrofi
Quindi il problema della parte iniziale è risolto.
Purtroppo essendo a livello zero in quanto a espressioni regolari non saprei invece come integrarle per il conteggio delle parole.