Quiero una expresión regular que pueda coincidir con los comentarios condicionales en una página fuente HTML para que pueda eliminar solo esos. Quiero preservar los comentarios regulares.Regex para eliminar comentarios condicionales
También me gustaría evitar el uso de. *? notación si es posible.
El texto es
foo
<!--[if IE]>
<style type="text/css">
ul.menu ul li{
font-size: 10px;
font-weight:normal;
padding-top:0px;
}
</style>
<![endif]-->
bar
y quiero eliminar todo en <!--[if IE]>
y <![endif]-->
EDIT: Es debido a BeautifulSoup Quiero eliminar estas etiquetas. BeautifulSoup no puede analizar y proporciona una fuente incompleta
EDIT2: [si IE] no es la única condición. Hay muchas más y no tengo ninguna lista de todas las combinaciones posibles.
Edit3: La solución de Vinko Vrsalovic funciona, pero el problema real por la BeautifulSoup no fue a causa de un comentario pícaro dentro de los comentarios condicional. Como
<!--[if lt IE 7.]>
<script defer type="text/javascript" src="pngfix_253168.js"></script><!--png fix for IE-->
<![endif]-->
Fíjese en el comentario <!--png fix for IE-->
?
Aunque mi problema se resolvió, me gustaría obtener una solución de expresiones regulares para esto.
Sin. *? no hay ninguno, especialmente si no conoce todas las combinaciones posibles, ¿cómo los atraparía a todos sin *. o similar? Y el modificador no codicioso es necesario en caso de que haya más de un comentario condicional ... –
@Vinko Vrsalovic: puede hacer una búsqueda anticipada para evitar. *? uso: http://www.regular-expressions.info/lookaround.html – Huppie
¿Por qué quieres evitar a los no codiciosos. *? ¿construir? –