Разделить строку с большим количеством пробелов
Имеется строка, например - "apple banana onion cucumber milk 1 139"
Необходимо разделить строку и сделать из нее список только в тех местах где более одного пробела.
Должно получится так - ["apple banana onion", "cucumber milk", "1", "139"].
Ответы (3 шт):
Автор решения: S. Nick
→ Ссылка
Попробуйте так:
line = "apple banana onion cucumber milk 1 139"
print([i.strip() for i in line.split(" ") if i ])
Автор решения: OPTIMUS PRIME
→ Ссылка
import re
print( re.split(r"\s\s+", "apple banana onion cucumber milk 1 139") )
\s — space, пробельный символ. + — один или больше повторений подряд.
Автор решения: Stanislav Volodarskiy
→ Ссылка
import re
# разбить строку на части
# |
# v пробельный символ (\t\n\r\f\v и ещё много других)
# -------- --
print(re.split(r'\s{2,}', 'apple banana onion cucumber milk 1 139'))
# - ----
# ^ повторить два или большее количество раз
# |
# raw-string, в таких строках обратный слеш
# не имеет специального значения
Другие варианты:
'\\s{2,}'– обычная строка: нетr, обратный слеш повторён;' {2,}'– если надо обрабатывать именно пробелы, не пробельные символы;' *'– используются только самые базовые элементы регулярных выражений: звёздочка и пробел;' +'– это уже было в другом ответе в формеr'\s\s+';'(?: | )+'– это больше шутка (математическая), но работает;'(?: {2,3})+'– та же шутка.