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

Я хочу удалить все символы перед назначенным символом или набором символов (например):

intro = "<>I'm Tom."

Теперь я хотел бы удалить <> до I'm (или, более конкретно, I). Любые предложения?

Ответ 1

Используйте re.sub. Просто сопоставьте все символы до I, затем замените согласованные символы на I.

re.sub(r'.*I', 'I', stri)

Ответ 2

Так как index(char) получает вам первый индекс символа, вы можете просто сделать string[index(char):].

Например, в этом случае index("I") = 2 и intro[2:] = "I'm Tom."

Ответ 3

str = "<>I'm Tom."
temp = str.split("I",1)
temp[0]=temp[0].replace("<>","")
str = "I".join(temp)

Ответ 4

Если вы знаете позицию символа начала начала удаления, вы можете использовать нотацию фрагмента:

intro = intro[2:]

Вместо того, чтобы знать, с чего начать, если вы знаете символы для удаления, вы можете использовать функцию lstrip():

intro = intro.lstrip("<>")

Ответ 5

str.find может найти символьный индекс первой certain string first appearance:

intro[intro.find('I'):]

Ответ 6

import re
intro = "<>I'm Tom."
re.sub(r'<>I', 'I', intro)

Ответ 7

У меня есть эта команда: ovs-vsctl list-br который создает этот список: ovsbr0 ovsbr1 ovsbr1.100 ovsbr1.101

что было бы правильным способом для результата:

100 101

В основном я хочу удалить все слова, которые не начинаются с ovsbr1. затем удалите из всех слов символы до символа точки (удалите также точку)

Ответ 8

Без регулярных выражений

intro.split('<>',1)[1]