2011-09-21 249 views
1

我想刪除所有評論。這是我的正則表達式:Python正則表達式子

re.sub(re.compile('<!--.*-->', re.DOTALL),'', text) 

但如果我的文字是:

bzzzzzz <!-- blabla --> blibli <!-- bloblo --> blublu 

結果是:的

bzzzzzz blublu 

代替:

bzzzzzz blibli blublu 

謝謝您幫助

回答

8

*是貪婪而*?

re.sub(re.compile('<!--.*?-->', re.DOTALL), '', text) 

,或者甚至更短:

re.sub('(?s)<!--.*?-->', '', text) 
+0

它的作品,非常感謝 – pablo07

10

我建議不要用正則表達式這種東西。總有一個更好的解決方案,例如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'