Java 入門

ホーム > Java の正規表現 (Regular Expression) > 正規表現による文字列のスプリット

正規表現による文字列のスプリット

正規表現を利用した文字列のスプリット方法について説明します。

こうした方法をしらないと、正規表現を知っていれば一瞬でできることも、自前でせっせと面倒な関数を書くことになってしまいます。

正規表現で split する

「カンマあるいは空白文字で文字列を区切り、文字列の配列にする」にはどうしたらよいでしょうか。

自前で関数を書いてもやれないことはありませんが、やれタブを区切り文字として忘れた、とか、スペースが思った以上に入っていた、とか、 考慮しないといけないことがあって案外面倒だったりします。

こうした場合、正規表現を使えば簡単に実現できます。

import java.util.regex.Pattern;

public class RegExpTest1 {

  public static void main(String[] args) {
    Pattern p = Pattern.compile("[,\\s]+");
    String[] result = p.split("1,  2, 3   4 ,  5");
    for (int i=0; i<result.length; i++){
      System.out.println("[" + result[i] + "]");
    }
  }

}

上の例では、パターン文字列として [,\s]+ を指定しています。

これによって、「カンマ (,) または空白文字 (\s) がひとつ以上 (+) で区切る」ということを指定したことになります。

実行結果は次の通りです。

[1]
[2]
[3]
[4]
[5]

確かに区切り文字で区切れていることがわかりますね。

ホーム > Java の正規表現 (Regular Expression) > 正規表現による文字列のスプリット