segunda-feira, 4 de novembro de 2013

Como retirar tags html de uma string - retirar html string java

Olá amigos !!

Um dia estava precisando fazer um programa que retirava tags html de uma string que vinha do banco de dados. Pensei como iria fazer aquilo. Então, comecei a pesquisar por soluções e vi algumas pessoas criando longas classes Java e scripts em Javascript para algo simples.

Cheguei a ver uma classe aonde foram registradas várias tags de html conhecidas e, depois ela checava palavra por palavra da string com as tags registradas e, retirava se achasse. Não achei aquilo muito correto pois, amanhã se fosse inventado uma nova tag, o programa não poderia ser mais aplicado.

Em um blog, vi que um leitor deu uma sugestão de uma regex para tal tarefa. Então, fui em cima disso e, consegui construir as seguintes soluções:

Regex em Java: <.*>

Regex em Javascript: <*>

Porém, existem prós e contras dessas soluções.

Prós:
- Consegue identificar qualquer tag html, visto que qualquer uma começa com < e termina com >.
- Não precisarei mais alterar esse programa.

Contra:
- Se na minha string houver algo que não seja html mas, que comece com < e termine >, o programa irá identificar isso como html e, irá retirar.

Explicação:

Se vocês notarem, em js não existe o ponto (.) e, em java existe. Essa diferença existe pelo fato de, em javascript o caractere asterisco (*) significa qualquer caractere (número ou letra) em uma quantidade de 0 a infinito. Em Java, o * significa somente que algo vai se repetir em um quantidade de 0 a infinito. Para dizermos que queremos que a regex encontre 0 ou infinitos caracteres, precisamos usar o ponto (.), onde, o mesmo significa  um caractere qualquer.

Nenhum comentário: