[Dúvida] Regex com replaceAll

2 respostas
A

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.

V

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