Обновил ответ.
function find_shortest_sentence($text)
{
$sentences = preg_split('/[.!?]\s*/', $text, -1, PREG_SPLIT_NO_EMPTY);
// передали некорректный текст
if (!isset($sentences[0])) {
throw new InvalidArgumentException('Text must contain at least one sentence.');
}
$min = array_shift($sentences);
foreach ($sentences as $sentence) {
if (mb_strlen($sentence) < mb_strlen($min)) {
$min = $sentence;
}
}
return $min;
}
var_dump(
find_shortest_sentence('Первое предложение. Второе предложение. Тр предл.'),
find_shortest_sentence('Первое предложение. Второе предложение. Тр предл')
);
// string(15) "Тр предл"
// string(15) "Тр предл"