Python正则表达式查找和正则表达式从列表中删除

时间:2015-09-25 06:11:47

标签: python regex

我不久前为自己构建了这个小RSS阅读器,我觉得有兴趣更新它以排除描述标签中的垃圾。我现在忙着测试它以删除&'lt; (所有内容)&'gt;从描述标签和我无法得到这个仪式。

到目前为止,我的代码看起来像这样

from re import findall
from Tkinter import *
from urllib import urlopen

disc = []
URL = 'http://feeds.sciencedaily.com/sciencedaily/matter_energy/engineering?format=xml'
O_W = urlopen(URL).read()

disc_ex = findall('<description>(.*)</description>',O_W)
for i in disc_ex:
    new_disc = i.replace(findall('&lt;(.*)&gt;',i),'')
    disc.extend([new_disc])

所以在我试图删除一些垃圾文本的new_disc代码行之前,我通常会看到我的文字看起来像这样

"Tailored DNA structures could find targeted cells and release their molecular payload selectively into the cells.&lt;img src="http://feeds.feedburner.com/~r/sciencedaily/matter_energy/engineering/~4/J1bTggGxFOY" height="1" width="1" alt=""/&gt;"

我想要的只是没有垃圾的文本,所以基本上只是:

"Tailored DNA structures could find targeted cells and release their molecular payload selectively into the cells."

对我有什么建议吗?

1 个答案:

答案 0 :(得分:1)

有几种解决方案,例如BeautifulSoup。要遵循您的想法,请避免使用'&lt;'中的字符串... '&GT;'括号只是改变最后一行:

...
for i in disc_ex:
    new_disc = i.replace(findall('&lt;(.*)&gt;',i),'')
    disc.extend([re.sub(r'<(.*)/>','',new_disc)])