[Java 提供了功能强大的正则表达式API,在java.util.regex 包下。本教程介绍如何使用正则表达式API。]

刚才有同事问,顺便发出来记一下。

以前读《精通正则表达式》的时候已经知道Java的正则表达式支持\p{In

name}的形式来指定匹配属于name的Unicode区块的字符。JDK的

Pattern类的文档上也有相关例子,\p{InGreek},表示匹配一个属于名为“Greek”的Unicode区块的字符。

那汉字怎么办?

Unicode里中文、日文与韩文的汉字是放在同一个(一些)区块里的,主要是在“CJK Unified Ideographs”当中,[最近需要在部署实时爬虫检测系统时,需要动态显示页面内容,但也为了简单,于是想了个很奇怪的办法。想把一个长篇小说,《地缘政治大战略》中的所有内容赋值给字符串,但还有一些在“CJK Unified Ideographs Extension A”与“CJK Unified Ideographs Extension B”当中。

以前我没用这个方式匹配过汉字,还在想这名字里面有空格怎么办,试了一下\p{InCJK Unified Ideographs}发觉果然可以……当然,这种办法是不区分匹配到的汉字到底是中文、日文还是韩文的。也不区分简繁体。同事还问怎么用正则表达式只匹配简体中文,这个我就没想出什么好办法。

《精通正则表达式》里也提到.NET用的Unicode区块语法是\p{name}或者\p{Is

name},相关文档在

这里。

放一demo代码:

public class TestUnicodeBlock {

public static void main(String[] args) {

final String regex = "\\p{InCJK Unified Ideographs}";

final String[] testChars = {

"\u6211", // a Chinese character

"\u300A", // a full-width punctuation

"\u3042", // a Hiragana character

"\uD55C" // a Hangul character

};

for (String s : testChars) {

System.out.printf("matched %s: %b\n", s, s.matches(regex));

}

}

}[统计指定内容的汉字个数:String str = 北京欢迎你 hello welcome!;int count=0;Pattern pattern = Pattern.compile([\u4e00-\u9fa5]);char c[] = str.toCharArray();for(

JAVA正则表达式怎么表达汉字_Java的正则表达式匹配汉字相关推荐

  1. java 拼音转汉字_Java通过pinyin4j实现汉字转拼音

    package com.zxy.timecard.utils; import net.sourceforge.pinyin4j.PinyinHelper; /** * 拼音工具类 * @author ...

  2. java正则表达式 s报错_Java基础--正则表达式的规则

    注意:正则表达式只关注格式是否正确,不关注内容是否有效. 1.[abc] :指a,b,c中的任意一个字符. 2.[^abc]:指除了a,b,c外的任意字符. 3.[a-z]:表示a到z间的任意一个字符 ...

  3. java正则 找出数字_Java使用正则表达式实现找出数字功能示例

    本文实例讲述了Java使用正则表达式实现找出数字功能.分享给大家供大家参考,具体如下: 1.问题: String str = "fjd789klsd908434jk#$$%%^3848854 ...

  4. java 配置写成表达式_Java的正则表达式之小结

    一直很奇怪为什么Java和Tcl的正则表达式之间有这样的一个差异,即Tcl正则表达式中的转义符\在Java正则表达式中一律会需要写成\\. 比如,Tcl的正则表达式为 "^Case\_nam ...

  5. java 注册页面正则式_Java使用正则表达式对注册页面进行验证功能实现

    本文给大家介绍java使用正则表达式对注册页面进行验证的代码,代码如下所示:package regex; import java.util.Scanner; import java.util.rege ...

  6. java正则判断日期格式_Java中用正则表达式判断日期格式是否正确

    1.Java中用正则表达式判断日期格式是否正确 DateType.java: /** * @Title:DateType.java * @Package:com.you.dao * @Descript ...

  7. java 随机生成常用汉字_Java随机生成中文汉字

    /** * 原理是从汉字区位码找到汉字.在汉字区位码中分高位与底位, 且其中简体又有繁体. * 位数越前生成的汉字繁体的机率越大. * 所以在本例中高位从171取,底位从161取, 去掉大部分的繁体和 ...

  8. java列出文件正则过滤_JAVA正则表达式过滤文件的实现方法

    java正则表达式过滤文件的实现方法 正则表达式过滤文件列表,听起来简单,如果用java实现,还真需要一番周折,本文简析2种方式 1.适用于路径确定,文件名时正则表达式的情况(jdk6的写法) Str ...

  9. java正则匹配汉字_正则表达式匹配中文汉字

    文章告诉你如何利用php教程 正则表达式匹配中文汉字哦,下面我们主要讲利用preg_match mb_eregi来验证汉字,并且正则过程出现问题的解决方法. preg_match("/[a- ...

最新文章

  1. Ubuntu解决Nvidia驱动缺失导致的HDMI无法输出问题
  2. 转工厂方法模式-想吃什么汉堡自己要
  3. ITK:使图像的一部分透明化
  4. EClipse开发NDK流程
  5. 从源码编译Chrome(chromium)
  6. idea断点_IDEA Debug 无法进入断点的解决方法
  7. python逐行读取txt写入excel_用python从符合一定格式的txt文档中逐行读取数据并按一定规则写入excel(openpyxl支持Excel 2007 .xlsx格式)...
  8. 无刷新判断用户名是否存在
  9. php解escape,PHP下escape解码函数用法示例
  10. CentOS6.4 xen4.2 虚拟机 桥接网络设置
  11. python全局名称空间_21、Python之名称空间与作用域
  12. 淘宝店铺基础版全屏装修步骤及代码,已经经过测试
  13. AutoCAD如何将dwf转成dwg格式
  14. keil4/5官网最新版及其覆盖安装方法
  15. Camera 的3A
  16. 不同cpu matlab,求助大神,为何不同机器运行MATLAB结果不同
  17. MongoDB分组取每组中一条数据
  18. 华为手机安卓手机莫名其妙的闹钟不知道哪里来的
  19. 技术干货 | 人大金仓KFS基于分区索引的分片入库技术解析
  20. 田园综合体PPP项目规划方案(ppt)

热门文章

  1. 解决ajax请求跨域,解决ajax请求跨域
  2. Python通过发邮件通知自己电脑被入侵
  3. js算法之“回溯算法”
  4. Netlify搭建个人博客设置域名
  5. Mysql 备份恢复与xtrabackup备份
  6. 第2话 Mesh对象的属性和threejs中的两种相机
  7. php获取当天是几号,周几
  8. 教师节有感国内Linux之现状
  9. 主流三维软件模型导入到ue4
  10. 07-08NBA总冠军预测