Разделить строку на пробелы в Python

Я ищу эквивалент Python

String str = "many   fancy word \nhello    \thi";
String whiteSpaceRegex = "\\s";
String[] words = str.split(whiteSpaceRegex);

["many", "fancy", "word", "hello", "hi"]

Ответ 1

Метод str.split() без аргумента разбивается на пробелы:

>>> "many   fancy word \nhello    \thi".split()
['many', 'fancy', 'word', 'hello', 'hi']

Ответ 2

import re
s = "many   fancy word \nhello    \thi"
re.split('\s+', s)

Ответ 3

Другой метод через модуль re. Он выполняет обратную операцию по совпадению всех слов вместо того, чтобы плевать все предложение пробелом.

>>> import re
>>> s = "many   fancy word \nhello    \thi"
>>> re.findall(r'\S+', s)
['many', 'fancy', 'word', 'hello', 'hi']

Выше регулярное выражение будет соответствовать одному или нескольким непространственным символам.

Ответ 4

Использование split() будет самым питоническим способом разделения на строку.

Также полезно помнить, что если вы используете split() для строки, которая не имеет пробела, тогда эта строка будет возвращена вам в списке.

Пример:

>>> "ark".split()
['ark']