Хмм, вы можете использовать класс символов \S+
, чтобы обозначить слово.
\S
эквивалентно [^\s]
который сам по себе эквивалентна [^ \v\t\f\n\r]
(в порядке их я напечатал: белое пространство, вертикальные вкладки, горизонтальные вкладки, форма подача, новая строка, возврат каретки).
[^ ... ]
указывает отрицательный класс, в котором будут сопоставляться все символы, кроме тех, что находятся внутри класса.
Теперь, для того, что вы пытаетесь сделать, я бы предпочел использовать re.match
так:
re.match(r'\s*\S+(?:\s+\S+){X-1,}', text_to_validate)
(?:\s+\S+)
спичек пространство (ы) с последующим словом.
{X-1,}
означает, что группа (?:\s+\S+)
должна появиться как минимум X-1
раз, чтобы соответствовать. Если X = 4, то оно становится {3,}
.
ideone demo
Альтернативный, разделить на пространствах, и подсчитать число элементов:
re.split(r"\s+", text_to_validate)
ideone demo
Вы что-нибудь пробовали? – bgusach
Я, кажется, получаю катастрофическое отступление. – eyaler
Извините, но без каких-либо попыток это выглядит как «пожалуйста, сделайте мою домашнюю работу» – bgusach