文字列を、すべての空白文字( ' ', 't, 'n, など)を区切り文字とする部分文字列の配列に分割するには、どのような正規表現パターンを java.lang.String.split()
メソッドに渡す必要がありますか?
の線で何か
myString.split("\\s+");
これは、すべてのホワイトスペースをデリミタとしてグループ化します。
つまり、文字列があれば
"Hello[space][tab]World"
これは、文字列 "Hello"
と "World"
を生成し、[space]
と [tab]
の間の空のスペースを省略します。
VonCが指摘したように、バックスラッシュはエスケープされるべきです。なぜなら、Javaはまず文字列を特殊文字にエスケープしようとし、それを解析するために「_」を送信するからです。欲しいのはリテラルの「"\s"」で、つまり「"\s"
」を渡す必要があるのです。ちょっと混乱しますよね。
これは、「[ ˶ˆ꒳ˆ˵ ]」と同じ意味です。
ほとんどの正規表現の方言では、このような場合に使用できる便利な文字サマリーのセットが用意されています。
\w
- 任意の単語文字にマッチします。
\W
- 任意の非単語文字にマッチします。
SPE(ホワイトスペース)にマッチします。
S
- 空白文字以外のすべての文字にマッチします。
d
- 任意の数字にマッチします。
D` - 数字以外にもマッチします。
Regex Cheatsheets"で検索すると、便利なまとめがたくさん出てきます。