python usuwanie tekstu pomiędzy znacznikami

0
import re
tags_re = re.compile('(<.+?>)')
response [0] = "trelmorelse"
response [1] = "<tojest> to nie jest usuwane </tojest>"
response [2] = "<znacznik do usuniecia z zawartoscią> to też jest usuwane bo to zawartość </znacznik do usuniecia z zawartoscią>"

for i in range(len(response)):
    response[i] = tags_re.sub('', response[i])

Prosze o jakieś nakierowanie... męcze się z pewnym problemem aż w SPACJA końcu wymyśliłem to mimo, że jest pare innych rozwiązań.

0
import re
trelmorelse = "abc"
tags_re = re.compile('(<.+?>)')
response = [1,2,3]
response [0] = trelmorelse
response [1] = '<tojest>to nie jest usuwane </tojest>'
response [2] = '<znacznik do usuniecia z zawartoscia>to tez jest usuwane bo to zawartosc </znacznik do usuniecia z zawartoscia>'
 
for i in range(len(response)):
    response[i] = tags_re.sub('', response[i])

for i in range(0,3):
    print response[i]
0

pip install BeautifulSoup

 
from bs4 import BeautifulSoup as bs
d = bs("<asd>sssssssssssssssssss</asd>")

for i in d.find_all('asd'):
  i.string = ''

0

Musisz zmienić wyrażenie regularne (nie za bardzo znam się na regexpach w Pythonie, więc być może będzie trzeba trochę poprawić):

tags_re = re.compile('(<znacznik do usuniecia z zawartoscią>.*?</znacznik do usuniecia z zawartoscią>)')

Jeśli chcesz się pozbyć wszystkich tagów z zawartością to musisz użyć referencji wstecznych:

tags_re = re.compile('(<(.+?)>.*?</(\1)>)')

1 użytkowników online, w tym zalogowanych: 0, gości: 1