CJK 字符检测问题

CJK characters detection issue

我想检测任何亚洲字符,我的代码在大多数情况下都有效,但不适用于韩语,我无法检测字符串何时包含韩语字符。

这是我的代码:

Pattern pattern = Pattern.compile("\p{InHiragana}|\p{InKatakana}|\p{IsHan}|\p{IsHangul}}", Pattern.UNICODE_CASE);
System.out.println(pattern.matcher("성동구").find()); //return false

我试过 "InCJK_Compatibility, InCJK_Unified_Ideographs, InCJK_Compatibility_Forms" 和其他 CJK 组,没有一个有效

固定码:

Pattern pattern = Pattern.compile("\p{InHiragana}|\p{InKatakana}|\p{IsHan}|\p{IsHangul}", Pattern.UNICODE_CASE);
System.out.println(pattern.matcher("성동구").find()); //return true

试试这个方法,对我有用:

public class MatcherMatch {

public static void main(String[] args) {
    Pattern pattern = Pattern.compile("\p{IsHangul}");
    Matcher matcher  = pattern.matcher("김인재 한국어/조선말");
    while(matcher.find()) {
        System.out.println(matcher.group());
    }
}

截图: