Twitterメッセージに含まれる "wwww" のクリーニング

Twitter のメッセージ中には笑いを表現する "wwww" が含まれるケースがある.最悪の場合,140文字の大部分を "wwww" が占める場合もある.
(その結果,形態素に分割できないため,KH Coder の127文字制限に引っかかる)

というわけで,"www..." や "www..." などを文字列中から消去するプログラム.

import java.io.*;
import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class test {

    public static void main(String[] args){
	//String str = "123www123WWW123";
	String originalString = "123wwww123www123";

	String str = zen2han(originalString);
	String reducedString = avoidLaugh(str);

	System.out.println(reducedString);
    }

    // テキスト中に含まれる www... や WWW... を消す.
    private static String avoidLaugh(String s){
	String regex = "[^w|^W]w+|W+[^w|^W]";
	Pattern p = Pattern.compile(regex);
	Matcher m = p.matcher(s);

	if (m.find()){
	    System.err.println("Matched");

	    // www および WWW を "" へ置換
	    String regexReplace = "w+|W+";
	    s = s.replaceAll(regexReplace, "");
	    System.err.println(s);
	} else {
	    System.err.println("Not matched");
	}

	return s;
    }

    //全角アルファベットを半角アルファベットへ変換する
    private static String zen2han(String s){
	StringBuffer sb = new StringBuffer(s);
	for (int i = 0; i < sb.length(); i++) {
	    char c = sb.charAt(i);
	    if (c >= 'a' && c <= 'z') {
		sb.setCharAt(i, (char) (c - 'a' + 'a'));
	    } else if (c >= 'A' && c <= 'Z') {
		sb.setCharAt(i, (char) (c - 'A' + 'A'));
	    }
	}
	return sb.toString();
    }
}