Чего вы не хотите: пробелы в начале или в конце или лишние пробелы между словами.Затем вы хотите строку, состоящую из слов, разделенных пробелами.
Я перейду к ^\S+(?:\s\S+)*$
.
Подробнее:
^ # Matches at the beginning of the string
\S+ # Matches one or more non-spacing character
(?: # Starts a non-capturing group
\s # Matches one spacing character
\S+ # Matches one or more non-spacing character
)* # Repeat non-capturing group zero or more times
$ # Matches at the end of string
Тестирование здесь