Come faccio a dividere una stringa con qualsiasi carattere di spazio bianco come delimitatore?
Quale schema regex dovrei passare al metodo java.lang.String.split()
per dividere una stringa in una matrice di sottostringhe usando tutti i caratteri di spazio bianco (' ', '\t', '\n', etc.) come delimitatori?
538
3
Qualcosa nelle linee di
Questo raggruppa tutti gli spazi bianchi come delimitatore.
Quindi se ho la stringa
"Ciao[spazio][tab]Mondo"
Questo dovrebbe produrre le stringhe
"Hello"
e"World"
e omettere lo spazio vuoto tra il[spazio]
e il[tab]
.Come ha fatto notare VonC, il backslash dovrebbe essere sottoposto a escape, perché Java proverebbe prima a fare l'escape della stringa in un carattere speciale, e manderebbe quello ad essere analizzato. Quello che vuoi è il letterale
"\s"
, il che significa che devi passare"\s"
. Può creare un po' di confusione.Il "s" è equivalente a "[ \t\n \x0B\f\r]`
Nella maggior parte dei dialetti regex ci sono una serie di comodi riassunti di caratteri che puoi usare per questo tipo di cose - questi sono buoni da ricordare:
w
- Corrisponde a qualsiasi carattere di parola.W
- Corrisponde a qualsiasi carattere non parola.`
s
- Corrisponde a qualsiasi carattere di spazio bianco.\S
- Corrisponde a tutto tranne che ai caratteri dello spazio bianco.d
- Corrisponde a qualsiasi cifra.D
- Corrisponde a qualsiasi cosa tranne le cifre.Una ricerca per "Regex Cheatsheets" dovrebbe ricompensarti con un sacco di utili riassunti.
"\\s+" dovrebbe fare il trucco