`
RednaxelaFX
  • 浏览: 3019472 次
  • 性别: Icon_minigender_1
  • 来自: 海外
社区版块
存档分类
最新评论

Java的正则表达式匹配汉字

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

以前读《精通正则表达式》的时候已经知道Java的正则表达式支持\p{Inname}的形式来指定匹配属于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{Isname},相关文档在这里

放一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));
        }
    }
}
分享到:
评论

相关推荐

    java正则表达式详解

    java正则表达式详解,希望对大家有用。

    java正则表达式经典实例

    说某个字符串匹配某个正则表达式,通常是指这个字符串里有一部分(或几部分分别)能满足表达式给出的条件。 在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述...

    Java正则表达式面试题解析:探索复杂匹配规则与高效字符串处理

    Java正则表达式在字符串处理和模式匹配中扮演着重要角色。为了帮助准备面试的你更好地掌握Java正则表达式的应用,本文精选了20道复杂的面试题,并提供了详细的解析。从贪婪匹配和非贪婪匹配的概念到匹配数字、字母、...

    正则表达式只可以输入只允许输入中文、数字、字母、下划线

    正则表达式只可以输入只允许输入中文、数字、字母、下划线

    java比较文件_读取输出文件_正则表达式匹配

    2.java正则表达式匹配* 2个文件内容是:中文 英文,然后分别比较中文部分和英文部分,文件内容如下: 520香烟 520cigarette 678月 678yue A-zone A-zone A.O.史密斯 AOsms ACE床垫 ACE AOL时代华纳 Time Warner BMG...

    精通正则表达式 中英文

    《精通正则表达式》是系统学习正则表达式的唯一最权威著作。任何时候,任何地方,只要提到正则表达式著作,人们都会提到这本书。该书质量之高,声誉之盛,使得几乎没有人企图挑战它的地位,从而在正则表达式图书领域...

    常用正则表达式******

    匹配中文字符的正则表达式: [\u4e00-\u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^\x00-\xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,...

    java 正则表达式

    JAVA正则表达式语法(转)正则表达式语法正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式示例表达式 ...

    所有常用的正则表达式

    配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^x00-xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII...

    [精通正则表达式(第3版)]中文版.(美)Jeffrey.E.F.Friedl-part1.rar

    本书主要讲解了正则表达式的特性和流派、匹配原理、优化原则、实用诀窍以及调校措施,并详细介绍了正则表达式在Perl、 Java、.NET、PHP中的用法。 本书自第1版开始着力于教会读者“以正则表达式来思考”,来让读者...

    java script 正则表达式验证大全

    正则表达式验证 java script 验证大全 部分: 下面都是我收集的一些比较常用的正则表达式,因为平常可能在表单验证的时候,用到的比较多。特发出来,让各位朋友共同使用。呵呵。 匹配中文字符的正则表达式: [u4...

    正则表达式匹配各种特殊字符

    写个可以匹配一下各种特殊字符的正则表达式 ((?=[\x21-\x7e]+)[^A-Za-z0-9]) x21-\x7e]+)[^A-Za-z0-9]) 这个匹配所有键盘上可见的非字母和数字的符号 var patrn = /[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~...

    正则表达式经典实例中文版 (美)高瓦特斯

    即使有经验的用户也经常会遇到性能不佳、误报、漏报等让人挠头的错误,《正则表达式经典实例》对于如何使用正则表达式来解决一些常见的问题给出了按部就班的解决方案,其中包括C#、Java、JavaScript、Perl、PHP、...

    精通正则表达式[中文第三版]part2

    本书主要讲解了正则表达式的特性和流派、匹配原理、优化原则、实用诀窍以及调校措施,并详细介绍了在Perl、Java、.NET、PHP中正则表达式的用法。 本书自第一版开始着力于教会读者 “以正则表达式来思考”,来让读者...

    精通正则表达式[中文第三版]part1

    本书主要讲解了正则表达式的特性和流派、匹配原理、优化原则、实用诀窍以及调校措施,并详细介绍了在Perl、Java、.NET、PHP中正则表达式的用法。 本书自第一版开始着力于教会读者 “以正则表达式来思考”,来让读者...

    精通正则表达式[中文第三版]part3

    本书主要讲解了正则表达式的特性和流派、匹配原理、优化原则、实用诀窍以及调校措施,并详细介绍了在Perl、Java、.NET、PHP中正则表达式的用法。 本书自第一版开始着力于教会读者 “以正则表达式来思考”,来让读者...

    精通正则表达式[中文第三版]part4

    本书主要讲解了正则表达式的特性和流派、匹配原理、优化原则、实用诀窍以及调校措施,并详细介绍了在Perl、Java、.NET、PHP中正则表达式的用法。 本书自第一版开始着力于教会读者 “以正则表达式来思考”,来让读者...

    精通正则表达式[中文第三版]part5

    本书主要讲解了正则表达式的特性和流派、匹配原理、优化原则、实用诀窍以及调校措施,并详细介绍了在Perl、Java、.NET、PHP中正则表达式的用法。 本书自第一版开始着力于教会读者 “以正则表达式来思考”,来让读者...

    精通正则表达式第3版

    《精通正则表达式(第3版)》是正则这一万妙...《精通正则表达式(第3版)》主要讲解了正则表达式的特性和流派、匹配原理、优化原则、实用诀窍以及调校措施,并详细介绍了正则表达式在perl、java、.net、php中的用法。

    Java使用正则表达式(regex)匹配中文实例代码

    本文给大家分享java使用正则表达式匹配中文的实例代码,以及java中要匹配中文的正则表达式两种写法,感兴趣的朋友通过本文一起看看吧

Global site tag (gtag.js) - Google Analytics