正则表达式 匹配韩文。用java判断String类型的字符串是否是韩文,想用正则表达式判断,正则表达式怎么写

2025年02月28日 02:08
有3个网友回答
网友(1):

如果仅韩文字母,不包含汉字的话

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test{
public static void main(String[] args) {
String a[]={
"hello你好中文",
"hello조선글",
"hello world 123",
"훈민정음训民正音" //不包括朝鲜繁体汉字
};
final Pattern p=Pattern.compile("^[\\u1100-\\u11ff\\uac00-\\ud7af\\u3130–\\u318F\\u3200–\\u32FF\\uA960–\\uA97F\\uD7B0–\\uD7FF\\uFF00–\\uFFEF\\w\\s]+$");
for(String t:a){
Matcher m=p.matcher(t);
System.out.println(t+"=>"+(m.find()?"合法":"不合"));
}

}
}
====
hello你好中文=>不合
hello조선글=>合法
hello world 123=>合法
훈민정음训民正音=>不合

网友(2):

楼上的韩文字符编码范围可能有误,在UTF-8编码规则中,韩文的范围是x3130-x318F和xAC00-xD7A3 ,所以正则应该为以下"[(\\x3130-\\x318F|\\xAC00-\\xD7A3)a-zA-z0-9]"

网友(3):

String string="안녕하세요";
boolean isH=string.matches("[\uAC00-\uD7A3]+");
System.out.println("是否是韩文:"+(isH?"是韩文":"不是韩文"));