当前位置:  开发笔记 > 编程语言 > 正文

正则表达式删除条件注释

如何解决《正则表达式删除条件注释》经验,为你挑选了1个好方法。

我想要一个可以匹配HTML源页面中的条件注释的正则表达式,所以我只能删除那些.我想保留常规评论.

我也想避免使用.*?符号如果可能的话.

文字是

foo



bar

我想在去除一切

编辑:这是因为BeautifulSoup我想删除这些标签.BeautifulSoup无法解析并提供不完整的来源

EDIT2: [如果IE]不是唯一的条件.还有更多,我没有任何可能的组合列表.

EDIT3: Vinko Vrsalovic的解决方案有效,但是为什么beautifulsoup失败的实际问题是由于条件评论中的流氓评论.喜欢



请注意评论?

虽然我的问题已经解决了,但我希望得到一个正则表达式的解决方案.



1> Vinko Vrsalo..:
>>> from BeautifulSoup import BeautifulSoup, Comment
>>> html = ''
>>> soup = BeautifulSoup(html)
>>> comments = soup.findAll(text=lambda text:isinstance(text, Comment) 
               and text.find('if') != -1) #This is one line, of course
>>> [comment.extract() for comment in comments]
[u'[if IE]> bloo blee>> print soup.prettify()


>>>     

python 3与bf4:

from bs4 import BeautifulSoup, Comment
html = ''
soup = BeautifulSoup(html, "html.parser")
comments = soup.findAll(text=lambda text:isinstance(text, Comment) 
               and text.find('if') != -1) #This is one line, of course
[comment.extract() for comment in comments]
[u'[if IE]> bloo blee

如果您的数据与BeautifulSoup混淆,您可以事先修复它或自定义解析器,以及其他解决方案.

编辑:根据您的评论,您只需根据需要修改传递给findAll的lambda(我修改了它)

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有