Очистка строк в Python: метод strip и его вариации

Раздел: Основы Python -> обработка строк

Основы работы с методом strip

Метод strip() удаляет пробельные символы (пробелы, табуляции, символы новой строки) с начала и конца строки. Он возвращает новую строку без изменений исходной.

text = '   Hello, World!   \n'
cleaned = text.strip()
print(repr(cleaned))

заменить символ на другой python (замена символа в строке на python)

'Hello, World!'

Strip строки python (метод strip для строк в python)

В этом примере удалены ведущие и завершающие пробелы и символ новой строки. Если передать аргумент – строку с символами, strip() будет удалять любые символы из переданной строки с обоих концов, пока не встретит символ, не входящий в неё.

url = 'www.example.com/'
clean_url = url.strip('/')
print(clean_url)

сколько чисел в строке python (подсчёт количества чисел в строке в python)

'www.example.com'

Python знак в строке (проверка наличия символа в строке python)

Как удалить пробелы только слева или только справа?

Для удаления символов с одной стороны используются методы lstrip() (левая часть) и rstrip() (правая часть). Они принимают тот же необязательный аргумент.

text = '   Python   '
left = text.lstrip()
right = text.rstrip()
print(f'left: {repr(left)}, right: {repr(right)}')

сколько символов в строке python (подсчет количества символов в строке в python)

left: 'Python   ', right: '   Python'

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

Как удалить определённые символы, а не только пробелы?

Передайте в strip() строку, содержащую символы, которые нужно удалить. Например, удаление знаков пунктуации с краёв:

s = '!!!Hello, World!!!'
print(s.strip('!'))

числа в строке python задача (задача: числа в строке в python)

'Hello, World'

Python количество слов (подсчет количества слов в python)

Обратите внимание: удаляется любой символ из переданного набора, а не вся подстрока целиком.

Типичные ошибки

  • Ошибка: Попытка удалить подстроку, передав её как аргумент. strip('ab') удалит все символы 'a' и 'b' с краёв, а не подстроку 'ab'.
    Решение: Используйте removeprefix() / removesuffix() (Python 3.9+) или метод replace().
  • Ошибка: Забыть, что strip() не изменяет исходную строку (строки неизменяемы). Результат нужно присвоить новой переменной.
  • Ошибка: Использовать strip() для удаления всех пробелов внутри строки – он удаляет только с краёв. Решение: Применить replace(' ', '') или регулярное выражение.

Как удалить пробелы не только с краёв, но и внутри строки?

Метод strip() для этого не подходит. Используйте replace() для удаления всех вхождений подстроки или re.sub() для более сложных шаблонов.

import re
text = '  Hello   World  '
# Удаление всех пробелов
print(text.replace(' ', ''))  # 'HelloWorld'
# Удаление лишних пробелов между словами
print(re.sub(r'\s+', ' ', text).strip())  # 'Hello World'

Расширенные примеры использования strip

Ниже приведены подробные примеры с кодом и результатами, демонстрирующие различные сценарии.

Удаление ведущих нулей из строки

Пример
num_str = '00012345000'
# Удаляем нули только слева
left_clean = num_str.lstrip('0')
print(left_clean)
'12345000'

Обратите внимание: нули справа остались.

Удаление завершающих слешей в URL

Пример
url = 'https://example.com/path///'
clean_url = url.rstrip('/')
print(clean_url)
'https://example.com/path'

Удаление нескольких разных символов с обоих концов

Пример
raw = '.,?!Hello. World?!,.'
clean = raw.strip('.,?!')
print(clean)
'Hello. World'

Символы '.' и ',' во внутренней части строки не удалились, так как strip() работает только с краями.

Использование strip с многострочной строкой

Пример
multiline = '''\n   Line 1   \n   Line 2   \n'''
cleaned = multiline.strip()
print(repr(cleaned))
'Line 1   \n   Line 2'

Удалены пробелы и символы новой строки только с самого начала и самого конца. Пробелы вокруг строк внутри сохранились.

Сравнение strip и регулярного выражения для удаления пробелов с краёв

Пример
import re
text = '\t  Hello  \n'
# Через strip
print(repr(text.strip()))
# Через регулярное выражение
print(repr(re.sub(r'^\s+|\s+$', '', text)))
'Hello'
'Hello'

Оба подхода дают одинаковый результат, но strip() быстрее и проще для стандартных случаев.

Удаление комбинации символов в определённом порядке – подводные камни

Пример
code = 'xoxoHello xooxo'
# Попытка удалить 'xo' с краёв
print(code.strip('ox'))
'Hello '

Результат может быть неожиданным: удаляются все символы 'o' и 'x' с краёв, пока не встретится другой символ. Строка 'xoxo' и 'xooxo' разобраны посимвольно. Если нужно удалить точную подстроку, используйте removeprefix() / removesuffix():

Пример
code = 'xoxoHello xooxo'
print(code.removeprefix('xoxo').removesuffix('xooxo'))
'Hello '

метод strip для строк в python - comments

En
Strip строки python (python)