Как бы я удалил содержимое этих тегов из строки в Python?

#python #string

#python #строка

Вопрос:

У меня есть эта строка:

[quote="Calvin_Thrasher, post:14, topic:84114, full:true"]nWell then why would it be in there?n[/quote]nnit sounds like an educational product intended to be used in a classroom setting, but not in competition.

Используя Python, я хочу извлечь только

it sounds like an educational product intended to be used in a classroom setting, but not in competition.

из этого. Я хочу избавиться от всего, что находится между [quote] и [/quote], вместе с тегами новой строки (предпочтительно заменив их фактической новой строкой).

Как бы я это сделал?

Комментарии:

1. string.split("[/quote]")[1].strip() ?

Ответ №1:

Для этого вы можете использовать модуль регулярных выражений Python, как показано ниже:

 import re

my_str = """[quote="Calvin_Thrasher, post:14, topic:84114, full:true"]nWell then why would it be in there?n[/quote]nnit sounds like an educational product intended to be used in a classroom setting, but not in competition."""

new_str = re.sub('[quote.*[/quote]', "", my_str, flags=re.DOTALL).strip()
  

Вывод new_str — это: it sounds like an educational product intended to be used in a classroom setting, but not in competition.

Комментарии:

1. Просто любопытно; почему используется strip вместо match , search или findall ?

2. @S3DEV strip используется для удаления пробелов вокруг конечной строки. Возможно, это пропущено в соответствии с требованиями пользователя.

3. Извините… моя опечатка. Я хотел спросить, зачем использовать sub ? Кажется, что другие методы более прямые, если OP хочет просто вернуть группу захвата.

4. Потому что, согласно его вопросу, он просто хочет избавиться от этого содержимого. Итак, sub в данном случае это кажется простым.