[Dúvida] Regex com replaceAll

2 respostas
ataufo

Galera,

minha dúvida não é para certificação mas é bem pertinente.

Estou recuperando uma string que contém um código HTML. Dentro desse código HTML eu tenho divs que desejo remover da String.

Por exemplo, eu tentei utilizar o método replaceAll de String, que recebe uma expressão regex e a string que deve substituir.

Tentei fazer o seguinte e não funcionou:

teste.replaceAll("<div id=“remove”>*</div>", “”);

Ou seja a intenção é remover o div <div id=“remove”> e tudo que está dentro dele.

Alguém sabe fazer ??

2 Respostas

W

Faz algo com as classes de regex do Java SE, não com replaceAll de String.

Alguma coisa mais ou menos do tipo:

String frase = "...."; //AQUI VAI A STRING COMPLETA COM AS DIV'S
     StringBuffer sb = new StringBuffer();
     Pattern regex = Pattern.compile("<div .*?>.*</div>");
     Matcher matcher = regex.matcher(frase);

     while(matcher.find()) {
        String group = matcher.group();
        matcher.appendReplacement(sb, ""); // AQUI SUBSTITUI ELAS POR ESPAÇOS VAZIOS
     }

     matcher.appendTail(sb);
     System.out.println(sb); // SÓ PARA VERIFICAR O RESULTADO DAS TROCAS

Caso precise analiar uma String que contenha uns caracteres especiais pode usar no método compile umas flags, talvez precise da MULTILINE.

ViniGodoy

Não duplique tópicos. Isso gera inconvenientes para você e para o GUJ:

  1. Você terá que acompanhar dois locais diferentes;
  2. A mesma pergunta poderá ser feita para você nos dois tópicos;
  3. Pessoas podem perder tempo respondendo algo que já foi resolvido;
  4. Uma discussão não contribui com a outra.

Na dúvida sobre qual fórum abrir, abra em qualquer um deles, e deixe que a moderação mova o tópico.

Seu outro tópico:
http://www.guj.com.br/posts/list/212078.java

Esse aqui será trancado.

Criado 9 de julho de 2010
Ultima resposta 9 de jul. de 2010
Respostas 2
Participantes 3