Избавиться от содержимого между <! - и // -> - PullRequest
0 голосов
/ 20 сентября 2010

У меня есть текстовый файл, который является результатом анализа HTML в простой текстовый файл. Мне нужно избавиться от чего-то вроде комментария XHTML, как показано ниже:

<!--
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>");
 // -->

Как я могу избавиться от всего, что между <!-- и //-->, используя Java?

1 Ответ

1 голос
/ 20 сентября 2010

Простым решением будет использование метода String.replaceAll () .

Например, должен работать следующий код:

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"

\\s* не соответствует ни одному, ни нескольким пробелам, поскольку в вашем примере был пробел, а в вашем описании - нет..*? делает это не жадным совпадением, поэтому оно будет соответствовать первому //-->

Если вы выполняете это снова и снова, вы можете использовать Pattern вместо этого и просто регенерировать совпадениедля каждого блока, который вы обрабатываете:

Pattern.compile("<!--.*?//\\s*-->").matcher(x).replaceAll("")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...