Regex e unicode

3 respostas
LeoNicolas

Galera

Estou necessitando de uma regex que divida uma frase (String) em palavras.
Para isso estou bucando uma palavra mais um espaço através da regex ([\w]+\s+)
O problema que essa regex não reconhece caracteres com acentos.
Abaixo coloco o meu código. O resultado da execução não contemplará a palavra “divisão” por ser acentuada.

String texto = "Frase teste para divisão de texto ";

Matcher m = Pattern.compile("([\\w]+\\s+)").matcher(texto);
while (m.find()) {
	System.out.println(m.group());
}

3 Respostas

Luiz-SP

pq vc simplimente não chama o método split da string?

LeoNicolas

Se eu fizer um split dos espaços funcionará mas não 100%.
Se na string houverem vários espaços juntos cada um será considerado como uma palavra, o que não seria verdade.
Na regex considero que uma palavra, para fazer a divisão, é formada por um texto qualquer mais um espaço.

Mantu

Fiz meio “de olho”, veja se funciona:

myString.split("\\s+");
Criado 10 de novembro de 2006
Ultima resposta 10 de nov. de 2006
Respostas 3
Participantes 3