Como dividir um cordel com quaisquer caracteres brancos como delimitadores?

Que padrão regex precisaria eu para passar ao método java.lang.String.split() para dividir uma String em um conjunto de substrings utilizando todos os caracteres do espaço em branco (' ', '\t', '\n', etc.) como delimitadores?

Solução

Algo nas linhas de

myString.split("\\s+");

Isto agrupa todos os espaços brancos como um delimitador.

Então, se eu tiver o fio:

Olá [espaço] [tab]Mundo"``

Isto deve render as cordas "Hello" e "World" e omitir o espaço vazio entre o [espaço] e a [aba].

Como VonC apontou, a barra invertida deve ser escapada, porque Java primeiro tentaria escapar da string para um caracter especial, e enviaria that para ser analisado. O que você quer, é a literal "\s", ou seja, você precisa passar "\s". Pode ficar um pouco confuso.

O equivalente a "O" é equivalente a "O"...

Comentários (4)

Na maioria dos dialetos regex existem um conjunto de resumos de caracteres convenientes que você pode usar para este tipo de coisa - estes são bons para lembrar:

Combina com qualquer carácter de palavra.

"W" - Combina com qualquer personagem que não seja uma palavra.

"S" - Combina com qualquer personagem do espaço branco.

"S" - Combina com tudo menos caracteres de espaço branco.

"D" - Combina com qualquer dígito.

"D" - Combina com qualquer coisa, excepto os dígitos.

Uma pesquisa por "Regex Cheatsheets" deve recompensá-lo com um monte de resumos úteis.

Comentários (4)

"\\s+" deve fazer o truque

Comentários (2)