首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

[D]匹配html源码时遇到的正则匹配有关问题

2012-04-25 
[D]匹配html源码时遇到的正则匹配问题从一段html中往出挖掘数据,想得到正文,现在已经把代码导入字符串cont

[D]匹配html源码时遇到的正则匹配问题
从一段html中往出挖掘数据,想得到正文,现在已经把代码导入字符串content中
我的思路是,先去除content中的无用空格字符,然后根据<br />与</p>进行分割,用re.split(),返回结果存在text列表中

若现在去除无用空格后
content='<DIV class=bt_content><P align=left><p style="text-align: center"><span style="color: #ff0000">供稿:</span><span style="color: #0000ff">宇航学院&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #ff0000">摄影、编辑:</span>新闻中心 斯君<br /><br /><img height="382" alt="" width="640" src="../../images/content/2012-02/20120227105158781316.jpg" /></span>&nbsp;</p>'
我的代码如下:

Python code
text = re.split('<br />|</p>',content)

此时text[0]='<DIV class=bt_content><P align=left><p style="text-align: center"><span style="color: #ff0000">供稿:</span><span style="color: #0000ff">宇航学院&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #ff0000">摄影、编辑:</span>新闻中心 斯君'
text[1]=''
text[2]='<img height="382" alt="" width="640" src="../../images/content/2012-02/20120227105158781316.jpg" /></span>&nbsp;'

我希望的结果是没有列表中没有空字符串,
即text[1]= '<img height="382" alt="" width="640" src="../../images/content/2012-02/20120227105158781316.jpg" /></span>&nbsp;'

也就是说,希望可以直接把两个或者更多的<br />和</p>进行自由组合,那么正则表达式该怎么写呢?
再如果<br />与</p>之间有不定量个空格,正则表达式又该怎样?

对于后者,我的理解是pattern='(\s+(<br />|</p>))+' 但是试了一下貌似不是这样 ,究竟该怎样啊?
-------------------------------
Double行动:
原帖分数:40
加分:40

[解决办法]
感觉你把空匹配从结果中去掉比较简单直观...
[解决办法]
我觉得,用一个xml解析工具操作会更容易些。

热点排行