Удалить все пробелы в строке
Я хочу удалить все пробелы из строки, как с обоих концов, так и между словами.
У меня есть следующий код на Python:
def my_handle(self):
sentence = ' hello apple '
sentence.strip()
Но это удаляет только пробелы по краям строки. Как мне удалить все пробелы?
5 ответ(ов)
Для удаления пробелов в начале и конце строки используйте метод strip
.
>> " foo bar ".strip()
"foo bar"
Будьте осторожны:
Функция strip
выполняет операции rstrip
и lstrip
(удаляет пробелы, табуляции, символы возврата каретки и переводов строки в начале и в конце строки, но не удаляет их в середине строки).
Если вы заменяете только пробелы и табуляции, вы можете столкнуться с невидимыми символами CRLF, которые будут казаться тем, что вы ищете, но на самом деле это не так.
Чтобы удалить все пробелы из строки, как в начале и конце, так и между словами, вы можете использовать модуль re
для работы с регулярными выражениями. Вот пример кода, который выполняет эту задачу:
import re
result = re.sub(r"\s+", '', ''' hello
apple
''')
print(result) # Вывод: 'helloapple'
В данном коде re.sub
заменяет все последовательности пробельных символов (включая пробелы, табуляции и переносы строк) на пустую строку, effectively удаляя их. Обратите внимание, что регулярное выражение \s+
находит одно или более вхождений пробельных символов.
Дополнительные ссылки:
Вы можете использовать метод split()
, чтобы игнорировать все пробелы, а затем метод join()
, чтобы объединить строки.
Вот пример:
sentence = ''.join(' hello apple '.split())
print(sentence) #=> 'helloapple'
Мне нравится этот подход, поскольку он представляет собой всего лишь выражение (а не оператор).
Это просто в использовании и не требует привязывания результата к переменной.
print(''.join(' hello apple '.split())) # нет необходимости в привязывании к переменной
Исходный код на Python использует модуль re
для работы с регулярными выражениями и для удаления пробелов из строки. Рассмотрим каждую строку кода:
import re
sentence = ' hello apple'
Здесь мы импортируем модуль re
и создаем строку sentence
, которая содержит начальный текст с пробелами.
Для удаления все пробелов из строки используется следующий код:
re.sub(' ','',sentence) # helloworld (удаляем все пробелы)
В этом выражении re.sub
ищет все одиночные пробелы (' '
) и заменяет их на пустую строку. В результате строка преобразуется в 'helloworld'.
Для удаления двойных пробелов и замены их на одинарные пробелы используется следующий код:
re.sub(' ',' ',sentence) # hello world (удаляем двойные пробелы)
В этом случае re.sub
ищет двойные пробелы (' '
) и заменяет их на один пробел, что приводит к строке 'hello world'.
Если вам нужно более универсальное решение для удаления лишних пробелов (как одиночных, так и двойных) из строки, вы можете использовать следующее регулярное выражение:
re.sub(r'\s+', ' ', sentence).strip() # hello apple
Здесь \s+
находит один или более пробелов, а strip()
удаляет пробелы в начале и конце строки. Это обеспечит более чистую обработку текста.
Как удалить пробелы?
Как удалить пробелы из строки?
Есть ли в Python метод подстроки 'contains' для строк?
Объединение двух столбцов текста в DataFrame pandas
Вывод строки в текстовый файл