Je veux une regex qui peut correspondre à des commentaires conditionnels dans une page source HTML afin que je puisse supprimer seulement ceux. Je veux préserver les commentaires réguliers.Regex pour supprimer les commentaires conditionnels
Je voudrais également éviter d'utiliser le. *? notation si possible.
Le texte est
foo
<!--[if IE]>
<style type="text/css">
ul.menu ul li{
font-size: 10px;
font-weight:normal;
padding-top:0px;
}
</style>
<![endif]-->
bar
et je veux enlever tout <!--[if IE]>
et <![endif]-->
EDIT: Il est à cause de BeautifulSoup je veux supprimer ces balises. BeautifulSoup ne parvient pas à analyser et donne une source incomplète
EDIT2: [si IE] n'est pas la seule condition. Il y en a beaucoup plus et je n'ai pas de liste de toutes les combinaisons possibles.
EDIT3: solution de Vinko Vrsalovic fonctionne, mais le problème réel pourquoi beautifulsoup n'a pas été à cause d'un commentaire voyous dans le commentaire conditionnel. Comme
<!--[if lt IE 7.]>
<script defer type="text/javascript" src="pngfix_253168.js"></script><!--png fix for IE-->
<![endif]-->
Notez le <!--png fix for IE-->
comment?
Bien que mon problème ait été résolu, j'aimerais obtenir une solution regex pour cela.
Sans. *? il n'y en a pas, surtout si vous ne connaissez pas toutes les combinaisons possibles, comment les attraperiez-vous sans un. * ou similaire? Et le modificateur non-gourmand est nécessaire dans le cas où il y a plus d'un commentaire conditionnel ... –
@Vinko Vrsalovic: Vous pouvez faire un lookahead correspondant à prévenir. *? utilisation: http://www.regular-expressions.info/lookaround.html – Huppie
Pourquoi voulez-vous éviter les non-gourmands. *? construction? –