Bir Dizeyi tüm boşluk karakterlerini (' ', '\t', '\n', vb.) sınırlayıcı olarak kullanarak bir alt dizeler Dizisine bölmek için java.lang.String.split()
yöntemine hangi regex desenini geçirmem gerekir?
Şöyle bir şey.
myString.split("\\s+");
Bu, tüm beyaz boşlukları bir sınırlayıcı olarak gruplandırır.
Yani eğer dizgim varsa:
"Merhaba[boşluk][tab]Dünya"
Bu, "Hello"
ve "World"
dizelerini vermeli ve [space]
ile [tab]
arasındaki boşluğu atlamalıdır.
VonC'nin de belirttiği gibi, ters bölü işaretinin kaçması gerekir, çünkü Java önce dizeyi özel bir karaktere kaçmaya çalışacak ve ayrıştırılmak üzere that gönderecektir. İstediğiniz şey, gerçek "\s"
, yani "\\s"
geçmeniz gerekir. Bu biraz kafa karıştırıcı olabilir.
\\s
, [ \\t\\n\\x0B\\f\\r]
ile eşdeğerdir.
Çoğu regex lehçesinde bu tür şeyler için kullanabileceğiniz bir dizi uygun karakter özeti vardır - bunları hatırlamak iyidir:
\w
- Herhangi bir sözcük karakteriyle eşleşir.
\W
- Kelime olmayan herhangi bir karakterle eşleşir.
\s
- Herhangi bir beyaz boşluk karakteriyle eşleşir.
\S
- Beyaz boşluk karakterleri dışındaki her şeyle eşleşir.
\d
- Herhangi bir rakamla eşleşir.
\D
- Rakamlar hariç her şeyle eşleşir.
"Regex Cheatsheets" için yapacağınız bir arama sizi pek çok faydalı özetle ödüllendirecektir.