10
votes

Regex pour supprimer les commentaires dans le fichier XML dans Eclipse Java

Quelqu'un peut-il me dire comment écrire une expression régulière pour correspondre aux commentaires dans le fichier XML, par exemple

<!-- Global JNDI resources
   Documentation at /docs/jndi-resources-howto.html
-->


0 commentaires

3 Réponses :


1
votes
xmlFileContent.replaceAll("<!--.*?-->", "");

3 commentaires

Merci, mais cela ne supprime que ces commentaires qui conviennent à une ligne. Comment inclure également ces commentaires multilignes?


La réponse de personne (5 heures plus tard, puis la réponse de Murali) inclut déjà le drapeau Dotall


Tard au jeu, mais cela ressemble à cela remplacerait le premier tout entre elle, jusqu'au dernier -> . Peut ne pas être la meilleure approche



20
votes
xmlFileContent.replaceAll( "(?s)<!--.*?-->", "" );

0 commentaires

10
votes
xmlFileContent.replaceAll("<!--[\s\S]*?-->", "");
[\s\S] works like '.', but will consume line endings as well.

2 commentaires

+1 Je pense que c'est la bonne réponse. D'autres ne travailleraient même pas pour l'exemple donné. Mais ne devrait-il pas être "" Le compilateur n'échappe pas à ces personnages?


Bien que la réponse de MVH est égale à la réponse de personne au point de vue fonctionnel, mais il existe une très grande différence lorsque la performance prend en compte. La réponse de personne ne gagne dans ce cas car elle est ~ 3 fois plus rapide (exécutant 100 000 cycles: 127 ms contre 395ms) de +1 à la réponse de personne.