[D]匹配html源码时遇到的正则匹配有关问题
[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">宇航学院 <span style="color: #ff0000">摄影、编辑:</span>新闻中心 斯君<br /><br /><img height="382" alt="" width="640" src="../../images/content/2012-02/20120227105158781316.jpg" /></span> </p>'
我的代码如下:
Python codetext = 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">宇航学院 <span style="color: #ff0000">摄影、编辑:</span>新闻中心 斯君'
text[1]=''
text[2]='<img height="382" alt="" width="640" src="../../images/content/2012-02/20120227105158781316.jpg" /></span> '
我希望的结果是没有列表中没有空字符串,
即text[1]= '<img height="382" alt="" width="640" src="../../images/content/2012-02/20120227105158781316.jpg" /></span> '
也就是说,希望可以直接把两个或者更多的<br />和</p>进行自由组合,那么正则表达式该怎么写呢?
再如果<br />与</p>之间有不定量个空格,正则表达式又该怎样?
对于后者,我的理解是pattern='(\s+(<br />|</p>))+' 但是试了一下貌似不是这样 ,究竟该怎样啊?
-------------------------------
Double行动:
原帖分数:40
加分:40
[解决办法]感觉你把空匹配从结果中去掉比较简单直观...
[解决办法]我觉得,用一个xml解析工具操作会更容易些。