как удалять пробелы не только в конце строки, но и во всей строке(strep удаляет только в конце.)
как удалять пробелы не только в конце строки, но и во всей строке(strep удаляет только в конце.)
text = "d d\n\n\n\n\n\nd"
print(text)
Хочу что бы вывод был:
d d
d
Ответы (3 шт):
Автор решения: UserTest013
→ Ссылка
Есть два варианта. Можно воспользоваться регулярными выражениям
import re
text = re.sub(" +", " ", text)
Или циклом, без регулярок:
while " " in text:
text = text.replace(" ", " ")
Автор решения: Stanislav Volodarskiy
→ Ссылка
Вопрос не полон, но можно применить регулярные выражения:
# один пробел или перевод строки или таб или ...
# ----
re.sub(r'(\s)\1*', r'\1', text)
# --- --
# ^ из всей группы оставляем только символ в скобках
# символ в скобках повторяется сколько угодно раз
'd d\n\n\n\n\n\nd' -> 'd d\nd' 'd d\n\n\n \n\n\nd' -> 'd d\n \nd'
Первый пример работает как просили, а про второй не знаю.
Автор решения: MaxU
→ Ссылка
Используя регулярные выражения, можно воспользоваться capturing group, состоящей из пробелов/табуляций или символов перевода строки и воспользоваться квантификатором {2,} (2 или более раз) и заменить найденную подстроку на "captured group".
Пример:
import re
re.sub(r"(\s){2,}", r"\1", text)
>>> 'd d\nd'