自作Androidアプリで「文字列内に漢字があるかどうか」を判定する必要があった。
意外な正規表現で漢字の判定ができることを知ったので備忘録として残す。
例えば以下のような入力文字列がある
String text = "モールス信号";
この中の漢字部分、「信号」だけを判定したかった。
public String convertMorseToText(String text) {
Pattern pattern = Pattern.compile("[一-龠]"); // 漢字の判定
Matcher matcher = pattern.matcher(text);
while (matcher.find()) {
Log.d("aaaaaaa", matcher.group());
}
}
Logcatの出力
信
号
[一-龠]
これが漢字の判定になるというリファレンスがなかなか見つからなかったので備忘録として書いておく。
というか、普通気づかないだろう・・・。
自作Androidアプリ「TwitMorse」のモールス信号翻訳機能で、漢字が含まれた場合の処理をまともにしたくて調べていた。
ちなみに、3年前の自分の設計がひどすぎて未だに処理の改修ができていない。
それどころか全然関係ないところのバグを見つけて直してしまった次第・・・
スパゲティコードに脳が疲れました。
【参考資料】
Javaで入力チェックに使える正規表現まとめ | 世界