quero editar de forma que seja transformada em |
com a expressao regular e o metodo abaixo eu consigo isso
str=str.replaceAll("<[^>]*>","|");
porém ele faz isso com todas as tags
eu quero saber como fica a expressao regular para quando dentro da tag houver uma determinada sequencia de caracteres nao faca essa edicao…
por exemplo
str=str.replaceAll(regex,"|");
a sequencia e por exemplo: href
Vá até o site do Aurélio Vargas e veja o que o (?!) faz.
hcbelias
nao e isso…
nesse caso…ele edita tudo…menos a tag que contem somente
Guilherme_Gomes
O thingol deu apenas um exemplo, você pode alterar o conteúdo de onde está o href e o src=… por outra coisa, ou deixar algo dinâmico, utilizadno regex. O que importa é a estrutura, e esse exemplo do thingol mostra bem isso.
hcbelias
continuo sem entender…
victorwss
Acho que é melhor você implementar o seu próprio analisador léxico por meio de um autômato finito determinístico do que ficar tentando bolar essas regex malucas.
Mesmo que o código fique significativamente maior, pelo menos será bem mais fácil de entender e de dar manutenção do que ter que trabalhar com essas regex que parecem ter vindo de um campeonato de obfuscated-perl.
hcbelias
assim vc so me complica…pq n tenhu nem ideia de como fazer isso
victorwss
hcbelias:
assim vc so me complica…pq n tenhu nem ideia de como fazer isso
Basicamente você cria um for que vai lendo um caractere de cada vez e mantém um estado interno (que pode ser um número ou o valor de um enum) dizendo o que ele está fazendo.
Acredite, é mais simples do que parece.
T
thingol
Como eu já disse antes, uma vez fiz uma applet que envia emails em HTML com imagens. O que eu tive de fazer:
O applet invocava uma página do mesmo aplicativo que tinha o HTML gerado do jeito que era preciso
Como quem já gerou HTML para email com imagens deve saber, é necessário trocar todos os < img src=“nome da imagem.jpg” > para < img src=“cid:numero maluco” > , e mais algumas outras coisas
Como não era eu que gerava o HTML, então pus um parser HTML bem bobinho dentro dessa applet (que tinha de rodar em Java 1.1 - Microsoft também, então não tinha acesso a expressões regulares)