[AJUDA] Remover uma String entre duas outras Strings

Galera,

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 ??

Na minha opinião a idéia está certa, porém, acredito que o seu regex não esteja adequado.
Lhe indico este site: http://regexlib.com , muito bom para conseguir expressoes regulares de qualidade, com certeza voce vai encontrar uma que faça isso que voce quer, dai é só substituir por string vazia mesmo.

Abs!

usa o replace ao invés do replaceAll

teste.replace("<div id=\"remove\">*</div>", ""); 

O replace faz uma varredura caracter por caracter do inicio para o fim. Dai ele substitui tudo pelo fazio.

O replaceAll pode ter problemas com caracteres como ($)

replaceAll
* Note that backslashes (</tt>) and dollar signs ($) in the
* replacement string may cause the results to be different than if it were
* being treated as a literal replacement string; see
* {@link java.util.regex.Matcher#replaceAll Matcher.replaceAll}.
* Use {@link java.util.regex.Matcher#quoteReplacement} to suppress the special
* meaning of these characters, if desired.

replace
* Replaces each substring of this string that matches the literal target
* sequence with the specified literal replacement sequence. The
* replacement proceeds from the beginning of the string to the end, for
* example, replacing “aa” with “b” in the string “aaa” will result in
* “ba” rather than “ab”.

Pessoal,

não encontrei a expressão no site e tb essa outra solução acima não funciona.

Mais fácil…

Identifique na string onde começa e onde termina cada div…

E remova da string nessas possicoes…

Como disse o amigo. sua regex nao está correta…

Pra usar regex tem que ser replaceall… replace nao usa regex

Não é mais facil identificar a posição pois posso ter varias divs, então vou ter que identificar varias possições inicias e finais.

Sim, a regex não está correta, e a minha dúvida é justamente qual é a correta.

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

Repare no ponto antes do asterisco. O ponto quer dizer qualquer caractere e o asterisco quer dizer zero ou mais.

Mesmo a expressao regular nao resolve o problema…

Veja a seguinte situacao:

 <div id="remove">
        <div></div>
 </div>

A expressao regular nao remove o correto

Sobre a expressao correta… leia a documentacao de expressoes regulares pra vc aprender como funciona…

[quote=ataufo]Pessoal,

não encontrei a expressão no site e tb essa outra solução acima não funciona.[/quote]

Eu testei aqui e funcionou assim como colequei pra vc.

Mas, pode tentar assim então: teste.replaceAll(Pattern.quote("&lt;div id=\"remove\"&gt;*&lt;/div&gt;"), "")