Kokį regex šabloną reikia perduoti java.lang.String.split()
metodui, kad suskaidytumėte eilutę į masyvo posistemių masyvą, naudodami visus baltuosius simbolius (' ' ', '\t', '\n' ir t. t.) kaip skirtukus?
Kažkas panašaus į
myString.split("\\s+");
Taip visi baltieji tarpai grupuojami kaip skirtukas.
Taigi, jei turiu eilutę:
"Sveiki[tarpas][skirtukas]Pasaulis"
Tai turėtų duoti eilutes "Hello"
ir "World"
ir praleisti tuščią tarpą tarp [space]
ir [tab]
.
Kaip nurodė VonC, atgalinis pasvirasis brūkšnys turėtų būti išskirtas, nes "Java" pirmiausia bandytų išvesti eilutę į specialųjį simbolį ir siųstų jį apdoroti. Jūs norite gauti tiesioginį "\s"
, o tai reiškia, kad reikia perduoti "\\s"
. Tai gali būti šiek tiek painu.
\\\s
atitinka [ \\t\n\x0B\f\r]
Daugumoje regex dialektų yra patogių simbolių santraukų, kurias galima naudoti tokiems dalykams, rinkinys - šias santraukas verta įsiminti:
\w
- atitinka bet kurį žodžio simbolį.
\W
- atitinka bet kurį ne žodžio simbolį.
\s
- Atitinka bet kurį baltosios vietos simbolį.
\S
- Atitinka bet kokius simbolius, išskyrus baltosios vietos simbolius.
\d
- Atitinka bet kurį skaitmenį.
\D
- Sutampa su bet kuo, išskyrus skaitmenis.
Ieškodami "Regex Cheatsheets" turėtumėte rasti daugybę naudingų santraukų.