Как обрезать строку в python до нужного символа с конца
Как можно обрезать строку с конца до ‘ -‘, чтобы получилось:
'Первый - второй'
Раньше, когда в строке встречалось только одно ‘ — ‘ делал через .split(‘ — ‘) и удалял последний элемент под индексом [1], но как только встретились строки с двумя ‘ — ‘ это перестало корректно работать. Либо может можно также через .split(‘ — ‘), но удалять не конкретно [1], а просто последний элемент в полученном списке. Кто знает как сделать? Подскажите, пожалуйста.
Отслеживать
149k 12 12 золотых знаков 59 59 серебряных знаков 132 132 бронзовых знака
Как удалить символ из строки Python: инструкция
В текстах часто встречаются символы, которые мешают корректной обработке информации. Например, в социальных сетях часто используются смайлы, которые могут мешать анализу текста. В таких случаях удаление символов из строки необходимо для правильной обработки информации. В Python существует несколько способов удаления символов из строк, которые рассмотрим в этой статье.
Удаление символа по индексу
В этом разделе мы рассмотрим способы удаления символов из строки по индексам, а именно:
- как удалить символы с помощью цикла;
- как удалить символы с помощью среза.
Как удалить символ из строки с помощью цикла
Вы можете удалить символ из строки в Python, используя цикл:
my_string = "Timeweb 0 cloud"
result_string = ""
index = 8
for i in range(len(my_string)):
if i != index:
result_string += my_string[i]
print(result_string)
Timeweb cloud
В этом примере мы хотим удалить из строки символ «0» c индекс 8. Для этого мы используем цикл for для прохода по символам строки my_string . Затем мы проверяем, совпадает ли i с переменной index , на котором находится элемент, который мы хотим удалить. Если i и index не совпадают, то мы добавляем текущий символ к новой строке result_string . В конце цикла новая строка result_string будет содержать все символы из строки my_string , за исключением символа с индексом 8.
Теперь рассмотрим, как в Python удалить последний символ в строке:
my_string = "Timeweb cloud."
result_string = ""
index = len(my_string)
for i in range(index-1):
result_string += my_string[i]
print(result_string)
Timeweb cloud
В качестве index можно использовать массив и удалять таким образом не один, а несколько символов:
my_string = "1Timeweb 0cloud"
result_string = ""
index = [0,9]
for i in range(len(my_string)):
if i not in index:
result_string += my_string[i]
print(result_string)
Timeweb cloud
Работа этого отрывка кода аналогична предыдущему, за исключением того, что в этот раз мы проверяем, содержит ли index число i . К слову, точно таким же образом мы можем удалять конкретные символы:
my_string = "1Timeweb 0cloud"
result_string = ""
index = ["0","1"]
for i in my_string:
if i not in index:
result_string += i
print(result_string)
Timeweb cloud
Как удалить символы с помощью среза
Чтобы удалить символы из строки в Python по индексу, можно использовать срезы (slices). Срезы позволяют выбрать часть строки по начальному и конечному индексу. Если вы хотите удалить символы из строки, вы можете воспользоваться срезом.
Например, чтобы удалить символ в строке my_string с индексом n , можно использовать следующую конструкцию:
my_string = my_string[:n] + my_string[n+1:]
Эта конструкция создает новую строку, состоящую из части строки my_string до индекса n , после чего добавляет часть строки my_string после индекса n+1 . Это эквивалентно удалению символа с индексом n :
my_string = "Timeweb 0cloud"
n =8
my_string = my_string[:n] + my_string[n+1:]
print(my_string)
Timeweb cloud
Также с помощью срезов можно удалить несколько подряд идущих символов. Например, чтобы удалить символы с индекса n по m , используйте такую конструкцию:
my_string = my_string[:n] + my_string[m+1:]
В результате вы получите новую строку, состоящую из начальной и конечной частей:
my_string = "Timeweb1111 0 cloud"
n = 7
m = 12
my_string = my_string[:n] + my_string[m+1:]
print(my_string)
Timeweb cloud
replace()
Метод replace() позволяет заменить одни символы в строке на другие. В качестве замены может выступать пустая строка, что будет эквивалентно удалению. Например:
my_string = "Timeweb1111 cloud"
my_string = my_string.replace("1","")
print(my_string)
Timeweb cloud
Чтобы удалить несколько разных символов из строки с помощью replace() , вы можете вызвать этот метод несколько раз, передав в качестве аргументов разные символы. Например:
my_string = "Timeweb1111 0000cloud"
my_string = my_string.replace("1", "").replace("0", "")
print(my_string)
Timeweb cloud
Вы также можете использовать цикл for и функцию replace() , чтобы удалить несколько символов из строки. Например:
my_string = "Timeweb1111 0000cloud"
chars_to_remove = ["1", "0"]
for char in chars_to_remove:
my_string = my_string.replace(char, "")
print(my_string)
Timeweb cloud
translate()
Для удаления символа из строки в Python вы можете использовать метод translate() .
Метод принимает на вход словарь или таблицу перевода и заменяет, в соответствии с входными аргументами, символы в строке. Чтобы удалить символ, вы можете указать пустую строку в качестве значения для этого символа.
Например, это может быть полезно, чтобы удалить сразу несколько символов:
def remove_commas(string):
trans_table =
return string.translate(trans_table)
my_string = "В этой, строке, нет: знаков препинания."
print(remove_commas(my_string))
В этой строке нет знаков препинания
Регулярные выражения
Чтобы удалить символы из строки с помощью регулярных выражений в Python, вы можете использовать метод re.sub() . Этот метод, как и два предыдущих, заменяет символы в строке. На вход он принимает три аргумента: регулярное выражение, строку замены и исходную строку. В качестве результата метод возвращает новую строку, в которой все совпадения регулярного выражения будут заменены. Если нужно удалить символы из строки, то можно использовать пустую строку в качестве строки замены.
Например, этот код удалит все цифры из строки:
import re
my_string = "Hello, World! 123"
my_string = re.sub(r'\d', '', my_string)
print(my_string)
Hello, World!
Регулярное выражение \d соответствует любой цифре. Поэтому метод re.sub() заменяет каждую цифру в my_string пустой строкой.
Вы можете также использовать регулярные выражения, чтобы удалить другие типы символов. Например, чтобы оставить в строке только цифры и буквы, можно воспользоваться регулярным выражением \W . Оно соответствует любому символу, который не является буквой или цифрой.
Вот пример, как вы можете использовать это:
import re
string = "Hello, World! 123"
string = re.sub(r'\W', '', string)
print(string)
HelloWorld123
join()
Последняя функция Python, с помощью которой мы будем удалять символы из строки — join() .
На вход метод join() принимает итерируемые объекты, которыми являются в том числе и строки, и объединяет их в строку. Обычно этот метод применяется для объединения списка в одну строку, но мы воспользуемся им для удаления символа. Например, удалим из строки все цифры с помощью join() :
my_string = '1czech2, prague3'
numbers = "123456789"
result_string = ''.join([char for char in my_string if char not in numbers])
print(result_string)
czech, prague
В этом примере на основе строки my_string создается список из символов, который содержит все символы, кроме цифр. Затем метод join() объединяет элементов списка в одну строку. В результате получается строка czech, prague , в которой все вхождения цифр удалены.
Заключение
В этой статье мы рассмотрели различные способы удаления символов из строки в языке Python. Выделять один конкретный метод из всех перечисленных не имеет смысла. В зависимости от условий стоящей перед вами задачи и потребностей, разные методы будут демонстрировать разную эффективность. Так, например, метод replace() будет наиболее удобен в простых случаях, а регулярные выражения подойдут для более сложных ситуаций.
Функция substr
Функция substr вырезает и возвращает подстроку из строки. Сама строка при этом не изменяется. Первым параметром функция принимает строку, вторым — позицию символа, откуда следует начинать вырезание, а третьим — количество символов. Учтите, что нумерация символов строки начинается с нуля.
Второй параметр может быть отрицательным — в этом случае отсчет начнется с конца строки, при этом последний символ будет иметь номер -1 .
Третий параметр можно не указывать — в этом случае отрезание произойдет до конца строки.
Данная функция неправильно работает с кириллицей. Используйте функцию mb_substr (она работает аналогичным образом, но корректно обрабатывает кириллицу).
Синтаксис
substr(строка, откуда, [сколько]);
Пример
Давайте вырежем 3 символа из строки позиции 1 (со второго символа, так как первый имеет номер 0):
Результат выполнения кода:
Пример
Давайте вырежем все символы до конца строки, начиная со второго (он имеет номер 1):
Результат выполнения кода:
Пример
Давайте вырежем третий и второй символы с конца, для этого укажем начало вырезания -3 (это номер третьего символа с конца), а количество символов — 2 :
Результат выполнения кода:
Пример
Давайте вырежем 2 последних символа, для этого укажем позицию предпоследнего символа (это -2), а третий параметр не укажем — в этом случае обрезание будет до конца строки:
Результат выполнения кода:
Пример
Давайте вырежем последний символ:
Результат выполнения кода:
Смотрите также
- функцию substr_replace ,
которая вырезает часть строки и заменяет ее на другую
Удалить часть строки от определенного символа до определенного символа
Удалить дубликаты определённого символа
Существует строка, например ////aa/bbb//c/// На выходе нужно получить: /aa/bbb/c/ То есть.
Удаление всей строки при нахождении определённого символа или слова
Здравствуйте, нужна помощь в создании программы на питоне. В чём суть, есть список определённых.
Как удалить символы до и после определенного символа?
У меня есть несколько html файлов и мне нужно вытянуть оттуда одну ссылку, как удалить символы.

Удалить часть строки до определенного символа
Подскажите пожалуйста,как с помощью запроса в sql можно удалить часть строки до определенного.
75 / 49 / 26
Регистрация: 22.02.2015
Сообщений: 306
1 2 3 4 5
>>> s = '127.0.0.1(spec) (domen\admin - user)' >>> l = s.find('(') >>> r = s.find('-') >>> print( s[:l] + s[r+1:-1] ) 127.0.0.1 user
![]()
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
1 2 3 4
import re ipUser='127.0.0.1(spec) (domen\admin - user)' print(re.sub('([0-9.]+)(. *?)\\-\\s*([A-Za-z0-9]+).*','\\1 \\2',ipUser))
4459 / 3212 / 1125
Регистрация: 21.03.2016
Сообщений: 7,949
1 2 3
>>> s = '127.0.0.1(spec) (domen\admin - user)' >>> print(s[:s.find('(')]+s[s.rfind('-')+1:-1]) 127.0.0.1 user
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Как скопировать подстроку из строки до определенного символа? Или удалить, начиная с этого символа
Добрый вечер. Ответ искал, но не нашёл. Предположим, есть строка: ABC|DEF Надо скопировать.
Как скопировать часть строки до определенного символа?
Допустим, пользователь вводит с клавиатуры строку. Необходимо скопировать часть строки до какого-то.

Как удалить текст с конца строки до определенного символа?
Здравствуйте, как удалить текст с конца строки до определенного символа?Заранее спасибо
Удалить текст до/после определённого символа каждой строки
Приветствую, помогите пожалуйста сделать BAT скрипт, который удаляет весь текст до определённого.

Как удалить от начала строки до определенного символа/слова
Здравствуйте, есть у меня строка "prxfire1.Text": 2 x <a.
как удалить все строки начинающиеся с определенного символа word
Добрый день! помогите удалить ненужные строчки с документа word которые начинаются с символов -: .
