2009-09-27 6 views
1

У меня есть сценарий Python, который будет выглядеть на HTML-файл, который имеет следующий формат:HTML замена тегов с помощью регулярных выражений и питона

<DOC> 
<HTML> 
... 
</HTML> 
</DOC> 
<DOC> 
<HTML> 
... 
</HTML> 
</DOC> 

Как удалить все HTML-теги (замените теги с «») за исключением открытия и закрытия тегов DOC с использованием регулярного выражения в Python? Кроме того, если я хочу сохранить альт-текст тега, каково должно быть выражение регулярного выражения?

+4

Вы должны использовать парсер DOM, а не регулярное выражение. См. Http://docs.python.org/library/xml.dom.html –

+0

И можете ли вы уточнить, что вы хотите удалить? –

+0

Я хочу удалить все теги, кроме и теги. – GobiasKoffi

ответ

1

поиск и замена с этим регулярным выражением: поиск:.? < *> заменить: ".

2

Выезд lxml, действительно хороший библиотеки питона для работы с XML Вы можете использовать drop_tag сделать то, что вы ищу.

 
from lxml import html 
h = html.fragment_fromstring('<doc>Hello <b>World!</b></doc>') 
h.find('*').drop_tag() 
print(html.tostring(h, encoding=unicode)) 

<doc>Hello World!</doc> 
3

за то, что вы пытаетесь достичь, я хотел бы использовать BeautifulSoup вместо регулярных выражений.

http://www.crummy.com/software/BeautifulSoup/

+0

+1. BeautifulSoup - это определенный ответ. – muhuk

Смежные вопросы