2007年11月03日

ひらがな判定

Javaでも正規表現で、ひらがな判定できるのかな?と思ってやってみました。試行錯誤の末できましたが、Stringの内部コードはUTF-16だったことをすっかり忘れていました。


String str = "さにわらがな";

//駄目!
String regex1 = "^(?:\\x30[\\x41-\\x93])+$";
System.out.println("ひらがな以外が"+(str.matches(regex1)?"なし":"あり"));

//駄目駄目!
String regex2 = "^(?:\\x82[\\x9F-\\xF1])+$";
System.out.println("ひらがな以外が"+(str.matches(regex2)?"なし":"あり"));

//駄目駄目駄目!
String regex3 = "^(?:\\xE3\\x81[\\x81-\\xBF]|\\xE3\\x82[\\x80-\\x93])+$";
System.out.println("ひらがな以外が"+(str.matches(regex3)?"なし":"あり"));

//成功!!!猫
String regex4 = "^(?:[\\u3041-\\u3093])+$";
System.out.println("ひらがな以外が"+(str.matches(regex4)?"なし":"あり"));
posted by 台北猫々 at 17:57| Comment(0) | TrackBack(0) | 技術メモ(Java)