我想删除所有评论。这是我的正则表达式:
re.sub(re.compile('<!--.*-->', re.DOTALL),'', text)
但如果我的文字是:
bzzzzzz <!-- blabla --> blibli <!-- bloblo --> blublu
结果是:
bzzzzzz blublu
而不是:
bzzzzzz blibli blublu
感谢您的帮助
答案 0 :(得分:11)
我建议不要将正则表达式用于此类内容。总有一个更好的解决方案,例如lxml.html.clean。
你的例子:
import lxml.html.clean as clean
cleaner = clean.Cleaner(comments=True)
cleaner.clean_html("bzzzzzz <!-- blabla --> blibli <!-- bloblo --> blublu")
#'bzzzzzz blibli blublu'
答案 1 :(得分:8)
*
贪婪而*?
不是
re.sub(re.compile('<!--.*?-->', re.DOTALL), '', text)
或者更短:
re.sub('(?s)<!--.*?-->', '', text)