2010-09-19 2 views
0

J'ai un fichier texte qui est le résultat de l'analyse HTML dans un fichier texte brut. Je dois me débarrasser de ce qui est quelque chose comme XHTML commentaire comme les spectacles suivants:Débarrassez-vous du contenu entre <! - et // ->

<!-- 
if (!document.phpAds_used) 
document.phpAds_used = ','; 
phpAds_random = new String 
(Math.random()); phpAds_random = 
phpAds_random.substring(2,11); 
document.write ("<" + "script 
language='JavaScript' 
type='text/javascript' src='"); 
document.write 
("http://www.writers.net/Openads/adjs.php?n=" 
+ phpAds_random); document.write ("&what=zone:5&target=_blank"); 
document.write ("&exclude=" + 
document.phpAds_used); if 
(document.referrer) document.write 
("&referer=" + 
escape(document.referrer)); 
document.write ("'><" + "/script>"); 
// --> 

Comment puis-je me débarrasser de quoi que ce soit entre <!-- et //--> en Java?

+0

Le fichier contient-il un autre code HTML? Si c'est le cas, voulez-vous le garder ou le supprimer (en partie)? – BalusC

Répondre

1

Une solution simple consisterait à utiliser la méthode String.replaceAll().

Par exemple, quelque chose comme le code suivant devrait fonctionner:

String x = "wow <!-- // --> zip, here's <!-- comment here //--> another one"; 
x = x.replaceAll("<!--.*?//\\s*-->", ""); 
System.out.println(x); // prints out "wow zip, here's another one" 

Le \\s* correspond à aucun ou plusieurs espaces depuis votre exemple avait un espace, mais votre description n'a pas. Le .*? fait un match de non-gourmand donc il correspondra à la première //-->

Si vous utilisez encore et, vous pouvez utiliser le Pattern au lieu et juste régénérer le matcher pour chaque bloc que vous traitez:

Pattern.compile("<!--.*?//\\s*-->").matcher(x).replaceAll("") 
Questions connexes