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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql 0xc0000005_duilib菜单开发遇见“0xC0000005: 读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突”…

    mysql 0xc0000005_duilib菜单开发遇见“0xC0000005: 读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突”…我的程序是这样一个逻辑。首先创建用户列表,点击列表项弹出菜单,点击菜单上“设备选项”,弹出设备列表,上面显示这个用户拥有的设备。菜单的创建参考了这为博主的教程:http://www.cnblogs.com/Alberl/category/520438.html如图点击列表项,弹出菜单中点击“设备”,运行新的窗口“设备列表”。接下来问题出现了,上面操作重复两遍,会在第二次关闭设备列表的时候发生…

    2022年10月3日
    3
  • 学习prototypejs中的继承实现机制(一): Object.extend()、Class.create()、Class#addMethods()的使用[通俗易懂]

    学习prototypejs中的继承实现机制(一): Object.extend()、Class.create()、Class#addMethods()的使用[通俗易懂]$super是不是和java中的继承有点像,我们居然可以使用$super来调用父类中的方法。不过有些差别:java中可以使用super调用父类中的任何公开的方法,但是在prototypejs里面$super只是一个方法,不是父对象。我们先研究下,prototypejs是如何做到$super,后面再看我们能不能改造它,让$super更像java中的super关键字。

    2022年7月22日
    13
  • get和post的区别

    get和post的区别

    2021年8月30日
    54
  • Linux操作系统的VI命令[通俗易懂]

    Linux操作系统的VI命令[通俗易懂]Linux操作系统的VI命令,VI命令详情,命令模式、插入模式和底行模式;vi命令如何查找、替换、删除、撤销、光标定位;vi命令如何切换模式。

    2022年7月3日
    26
  • C#7.0中的解构功能—Deconstruct「建议收藏」

    C#7.0中的解构功能—Deconstruct「建议收藏」解构元组  C#7.0新增了诸多功能,其中有一项是新元组(ValueTuple),它允许我们可以返回多个值,并且配合解构能更加方便的进行工作,如下面例子staticvoidMain(string[]args){(varname,varage)=GetUser();Console.WriteLine($”name:{name}\nage:{age}…

    2025年8月13日
    2
  • 负载均衡的算法有哪些_acwing是什么

    负载均衡的算法有哪些_acwing是什么G 公司有 n 个沿铁路运输线环形排列的仓库,每个仓库存储的货物数量不等。如何用最少搬运量可以使 n 个仓库的库存数量相同。搬运货物时,只能在相邻的仓库之间搬运。数据保证一定有解。输入格式第 1 行中有 1 个正整数 n,表示有 n 个仓库。第 2 行中有 n 个正整数,表示 n 个仓库的库存量。输出格式输出最少搬运量。数据范围1≤n≤100,每个仓库的库存量不超过 100。输入样例:517 9 14 16 4输出样例:11#include<bits/stdc++.

    2022年8月9日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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