Python использует re.sub для удаления после строки.

1

Как удалить все после .rtf Что я до сих пор удаляет .rtf и все после него.

s = 'newyork.pdf.rtf.doc'
actual_file = re.sub(".rtf.+", "", s)

возвращает newyork.pdf

  • 1
    Используйте вид сзади: re.sub(r'(?<=\.rtf).*', '', s) . Вы также можете захватить .rtf и заменить в соответствующей группе: re.sub(r'(\.rtf).*', r'\1', s)
Теги:

1 ответ

2
Лучший ответ

Опция 1
Используйте положительный lookbehind (?<=\.rtf).*:

>>> re.sub(r'(?<=\.rtf).*', '', s)
'newyork.pdf.rtf'

Вариант 2
Захватите .rtf и замените соответствующую группу:

>>> re.sub(r'(\.rtf).*', r'\1', s)
'newyork.pdf.rtf'

Ещё вопросы

Сообщество Overcoder
Наверх
Меню