Ответ 1
Используйте re.sub
. Просто сопоставьте все символы до I
, затем замените согласованные символы на I
.
re.sub(r'.*I', 'I', stri)
Я хочу удалить все символы перед назначенным символом или набором символов (например):
intro = "<>I'm Tom."
Теперь я хотел бы удалить <>
до I'm
(или, более конкретно, I
). Любые предложения?
Используйте re.sub
. Просто сопоставьте все символы до I
, затем замените согласованные символы на I
.
re.sub(r'.*I', 'I', stri)
Так как index(char)
получает вам первый индекс символа, вы можете просто сделать string[index(char):]
.
Например, в этом случае index("I") = 2
и intro[2:] = "I'm Tom."
str = "<>I'm Tom."
temp = str.split("I",1)
temp[0]=temp[0].replace("<>","")
str = "I".join(temp)
Если вы знаете позицию символа начала начала удаления, вы можете использовать нотацию фрагмента:
intro = intro[2:]
Вместо того, чтобы знать, с чего начать, если вы знаете символы для удаления, вы можете использовать функцию lstrip():
intro = intro.lstrip("<>")
str.find
может найти символьный индекс первой certain string first appearance
:
intro[intro.find('I'):]
import re
intro = "<>I'm Tom."
re.sub(r'<>I', 'I', intro)
У меня есть эта команда: ovs-vsctl list-br который создает этот список: ovsbr0 ovsbr1 ovsbr1.100 ovsbr1.101
что было бы правильным способом для результата:
100 101
В основном я хочу удалить все слова, которые не начинаются с ovsbr1. затем удалите из всех слов символы до символа точки (удалите также точку)
Без регулярных выражений
intro.split('<>',1)[1]