#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
в данном случае это кажется простым.