Java正则表达式 匹配中文字符[通俗易懂]

Java正则表达式 匹配中文字符[通俗易懂]若要用JAVA正则表达式匹配中文字符,主要是了解中文字符的编码。

大家好,又见面了,我是你们的朋友全栈君。

若要用JAVA正则表达式匹配中文字符,主要是了解中文字符的编码。

匹配中文字符:半角:[\u4e00-\u9fa5] ,全角:[ufe30-uffa0]

匹配中文符号: 。 ;  , : “ ”( ) 、 ? 《 》的对应编码为:”[\u3002\uff1b\uff0c\uff1a\u201c\u201d\uff08\uff09\u3001\uff1f\u300a\u300b]”

英文字母:[a-zA-Z] 
数字:[0-9] 

下面的例子是要匹配出字符串中含有“《中英字符*》”的例子,并输出匹配内容,其中.表示除了行终止符之外的所有字符。

	public static void main(String[] args) {
		String patternStr = "\u300a.+\u300b";
		Pattern pattern = Pattern.compile(patternStr);
		String input = "《21世纪经济报道》记者";
		Matcher matcher = pattern.matcher(input);
		if (matcher.find()) {
			int start = matcher.start();
			int end = matcher.end();
			System.out.println(input.substring(start, end));
		}else{
			System.out.println("not found");
		}
		//output: 《21世纪经济报道》
	}

上例patternStr得到的匹配结果是最长的string。比如若input=”莫言作品《丰乳肥臀》,《红高粱》“, 那么输出的就是”《丰乳肥臀》,《红高粱》“。

若修改patternStr=”\u300a[^\u300a]+\u300b”; 即《》内的字符不能为《。 输出的结果就是《丰乳肥臀》。

当然若有具体的数据特征,可进一步改进pattern string。

最近要做一个中文数据的处理,查了一下蛮有意思的。

参考文献:

http://www.111cn.net/jsp/Java/46105.htm

http://blog.csdn.net/love_5209/article/details/23353907

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/150561.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号