Мучился с составлением регулярного выражения для подсчета слов в предложении. Точнее для определения соответствия, что фраза имеет N слов.

Получилось следующее: (\s*[^\s.-]+-?[^\s.-]*){1,4}$
Т.е. фраза будет содержать от 1 до 4 слов.
Получилось сложно для такой простой задачи, но ничего проще не нашел и не смог сочинить. Если кто подскажет буду благодарен.

Подсчет количества слов в строке с помощью регулярных выражений