Cómo eliminar comentarios HTML usando Regex en Python

Quiero eliminar los comentarios HTML de un texto html

heading

some text more text more text

debe resultar en:

 

heading

some text more text more text

No debes ignorar el retorno de carro.

 re.sub("()", "", s, flags=re.DOTALL) 

Finalmente se me ocurrió esta opción:

re.sub("()", "", t)

Añadiendo el ? hace que la búsqueda no sea codiciosa y no combina varias tags de comentarios.

 html = re.sub(r"", "", html) 

re.sub básicamente encuentra la instancia coincidente y reemplaza con los segundos argumentos. Para este caso, coincide con cualquier cosa, comience con . El punto y? significa cualquier cosa, y \ s y \ n agregan los casos de comentarios de línea muti.

Puedes probar esta expresión regular

No utilice expresiones regulares. En su lugar, use un analizador XML, el de la biblioteca estándar es más que suficiente.

 from xml.etree import ElementTree as ET html = ET.parse("comments.html") ET.dump(html) # Dumps to stdout ET.write("no-comments.html", method="html") # Write to a file 
 re.sub("(?s)", "", s) 

o

 re.sub("", "", s, flags=re.DOTALL)