JAVA正则表达式怎么表达汉字_Java的正则表达式匹配汉字
[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的正则表达式匹配汉字相关推荐
- java 拼音转汉字_Java通过pinyin4j实现汉字转拼音
package com.zxy.timecard.utils; import net.sourceforge.pinyin4j.PinyinHelper; /** * 拼音工具类 * @author ...
- java正则表达式 s报错_Java基础--正则表达式的规则
注意:正则表达式只关注格式是否正确,不关注内容是否有效. 1.[abc] :指a,b,c中的任意一个字符. 2.[^abc]:指除了a,b,c外的任意字符. 3.[a-z]:表示a到z间的任意一个字符 ...
- java正则 找出数字_Java使用正则表达式实现找出数字功能示例
本文实例讲述了Java使用正则表达式实现找出数字功能.分享给大家供大家参考,具体如下: 1.问题: String str = "fjd789klsd908434jk#$$%%^3848854 ...
- java 配置写成表达式_Java的正则表达式之小结
一直很奇怪为什么Java和Tcl的正则表达式之间有这样的一个差异,即Tcl正则表达式中的转义符\在Java正则表达式中一律会需要写成\\. 比如,Tcl的正则表达式为 "^Case\_nam ...
- java 注册页面正则式_Java使用正则表达式对注册页面进行验证功能实现
本文给大家介绍java使用正则表达式对注册页面进行验证的代码,代码如下所示:package regex; import java.util.Scanner; import java.util.rege ...
- java正则判断日期格式_Java中用正则表达式判断日期格式是否正确
1.Java中用正则表达式判断日期格式是否正确 DateType.java: /** * @Title:DateType.java * @Package:com.you.dao * @Descript ...
- java 随机生成常用汉字_Java随机生成中文汉字
/** * 原理是从汉字区位码找到汉字.在汉字区位码中分高位与底位, 且其中简体又有繁体. * 位数越前生成的汉字繁体的机率越大. * 所以在本例中高位从171取,底位从161取, 去掉大部分的繁体和 ...
- java列出文件正则过滤_JAVA正则表达式过滤文件的实现方法
java正则表达式过滤文件的实现方法 正则表达式过滤文件列表,听起来简单,如果用java实现,还真需要一番周折,本文简析2种方式 1.适用于路径确定,文件名时正则表达式的情况(jdk6的写法) Str ...
- java正则匹配汉字_正则表达式匹配中文汉字
文章告诉你如何利用php教程 正则表达式匹配中文汉字哦,下面我们主要讲利用preg_match mb_eregi来验证汉字,并且正则过程出现问题的解决方法. preg_match("/[a- ...
最新文章
- Ubuntu解决Nvidia驱动缺失导致的HDMI无法输出问题
- 转工厂方法模式-想吃什么汉堡自己要
- ITK:使图像的一部分透明化
- EClipse开发NDK流程
- 从源码编译Chrome(chromium)
- idea断点_IDEA Debug 无法进入断点的解决方法
- python逐行读取txt写入excel_用python从符合一定格式的txt文档中逐行读取数据并按一定规则写入excel(openpyxl支持Excel 2007 .xlsx格式)...
- 无刷新判断用户名是否存在
- php解escape,PHP下escape解码函数用法示例
- CentOS6.4 xen4.2 虚拟机 桥接网络设置
- python全局名称空间_21、Python之名称空间与作用域
- 淘宝店铺基础版全屏装修步骤及代码,已经经过测试
- AutoCAD如何将dwf转成dwg格式
- keil4/5官网最新版及其覆盖安装方法
- Camera 的3A
- 不同cpu matlab,求助大神,为何不同机器运行MATLAB结果不同
- MongoDB分组取每组中一条数据
- 华为手机安卓手机莫名其妙的闹钟不知道哪里来的
- 技术干货 | 人大金仓KFS基于分区索引的分片入库技术解析
- 田园综合体PPP项目规划方案(ppt)