Substituir códigos HTML por caracteres equivalentes em Java

Atualmente estou trabalhando na conversão de códigos HTML com caracteres equivalentes em java. Eu preciso converter o código abaixo para caracteres.

è - è ® - ® & - & ñ - ñ & - & 

Eu tentei usar o padrão regex

 (&#x)([\\d|\\w]*)([\\d|\\w]*)([\\d|\\w]*)([\\d|\\w]*)(;) 

Quando eu depurar, matcher.find() me dá true mas o controle ignora o loop onde eu escrevi o código para conversão. Não sei o que está acontecendo lá.

Além disso, existe alguma maneira de otimizar esse regex?

Qualquer ajuda é apreciada.

Exceção

 java.lang.NumberFormatException: For input string: "x26" at java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at org.apache.commons.lang.Entities.unescape(Entities.java:683) at org.apache.commons.lang.StringEscapeUtils.unescapeHtml(StringEscapeUtils.java:483) 

Além disso, existe alguma maneira de otimizar esse regex?

Sim, não use o regex para esta tarefa, use o Apache StringEscapeUtils do Apache commons lang :

 import org.apache.commons.lang.StringEscapeUtils; ... String withCharacters = StringEscapeUtils.unescapeHtml(yourString); 

JavaDoc diz:

Unescapes uma string contendo entidade escapa para uma string contendo os caracteres Unicode reais correspondentes aos escapes. Suporta entidades HTML 4.0.

Por exemplo, a string "<Français>" vai se tornar ""

Se uma entidade não for reconhecida, ela será deixada sozinha e inserida textualmente na sequência de resultados. Por exemplo, ">&zzzz;x" se tornará ">&zzzz;x" .

Uma de todas as outras possibilidades ou methods util existentes podem ser org.springframework.web.util.HtmlUtils.htmlUnescape da spring-web.

Exemplo de uso em um script Groovy independente:

 @Grapes( @Grab(group='org.springframework', module='spring-web', version='4.3.0.RELEASE') ) import org.springframework.web.util.HtmlUtils println HtmlUtils.htmlUnescape("La élite del tenis no teme al zika y jugará en Río") 
Intereting Posts