Java正则表达式中匹配汉字问题

 最近需要在部署实时爬虫检测系统时,需要动态显示页面内容,但也为了简单,于是想了个很奇怪的办法。想把一个长篇小说,《地缘政治大战略》中的所有内容赋值给字符串,但由于其中特殊字符的存在比如双引号,括号之类的,赋值存在错误,于是匪夷所思的想只提取汉字,别的都不要。于是产生了匹配中文汉字的问题。

    Java中字符是双字节的采用unicode编码方式,汉字也是双字节的。这就要从编码上做文章了,想通过编码范围匹配汉字,当然这要求中文汉字编码是连续的。在网上的google了一下,很庆幸汉字编码果真是连续的。

 用regex = [\\u4e00-\\u9fa5]就可以匹配汉字了。下面是别人搜集的关于unicode编码中有关中文编码的知识,收藏一下,谢谢作者了。

 

 

      在网上搜索了一下汉字的Unicode范围,普遍给出了“U+4E00..U+9FA5”。但事实上这个范围是不完整的,甚至连基本的全角(中文)标点也未包含在内。根据最新的Unicode 5.0版整理如下:

注:在绝大多数应用场合中,我们可以仅用(1)、(2)、(3)、(4)、(5)的集合作为CJK判断的依据。

1)标准CJK文字

http://www.unicode.org/Public/UNIDATA/Unihan.html

Code point range

Block name

Release

U+3400..U+4DB5

CJK Unified Ideographs Extension A

3.0

U+4E00..U+9FA5

CJK Unified Ideographs

1.1

U+9FA6..U+9FBB

CJK Unified Ideographs

4.1

U+F900..U+FA2D

CJK Compatibility Ideographs

1.1

U+FA30..U+FA6A

CJK Compatibility Ideographs

3.2

U+FA70..U+FAD9

CJK Compatibility Ideographs

4.1

U+20000..U+2A6D6

CJK Unified Ideographs Extension B

3.1

U+2F800..U+2FA1D

CJK Compatibility Supplement

3.1

2)全角ASCII、全角中英文标点、半宽片假名、半宽平假名、半宽韩文字母:FF00-FFEF

http://www.unicode.org/charts/PDF/UFF00.pdf

3)CJK部首补充:2E80-2EFF

http://www.unicode.org/charts/PDF/U2E80.pdf

4)CJK标点符号:3000-303F

http://www.unicode.org/charts/PDF/U3000.pdf

5)CJK笔划:31C0-31EF

http://www.unicode.org/charts/PDF/U31C0.pdf

6)康熙部首:2F00-2FDF

http://www.unicode.org/charts/PDF/U2F00.pdf

7)汉字结构描述字符:2FF0-2FFF

http://www.unicode.org/charts/PDF/U2FF0.pdf

8)注音符号:3100-312F

http://www.unicode.org/charts/PDF/U3100.pdf

9)注音符号(闽南语、客家语扩展):31A0-31BF

http://www.unicode.org/charts/PDF/U31A0.pdf

10)日文平假名:3040-309F

http://www.unicode.org/charts/PDF/U3040.pdf

11)日文片假名:30A0-30FF

http://www.unicode.org/charts/PDF/U30A0.pdf

12)日文片假名拼音扩展:31F0-31FF

http://www.unicode.org/charts/PDF/U31F0.pdf

13)韩文拼音:AC00-D7AF

http://www.unicode.org/charts/PDF/UAC00.pdf

14)韩文字母:1100-11FF

http://www.unicode.org/charts/PDF/U1100.pdf

15)韩文兼容字母:3130-318F

http://www.unicode.org/charts/PDF/U3130.pdf

16)太玄经符号:1D300-1D35F

http://www.unicode.org/charts/PDF/U1D300.pdf

17)易经六十四卦象:4DC0-4DFF

http://www.unicode.org/charts/PDF/U4DC0.pdf

18)彝文音节:A000-A48F

http://www.unicode.org/charts/PDF/UA000.pdf

19)彝文部首:A490-A4CF

http://www.unicode.org/charts/PDF/UA490.pdf

20)盲文符号:2800-28FF

http://www.unicode.org/charts/PDF/U2800.pdf

21)CJK字母及月份:3200-32FF

http://www.unicode.org/charts/PDF/U3200.pdf

22)CJK特殊符号(日期合并):3300-33FF

http://www.unicode.org/charts/PDF/U3300.pdf

23)装饰符号(非CJK专用):2700-27BF

http://www.unicode.org/charts/PDF/U2700.pdf

24)杂项符号(非CJK专用):2600-26FF

http://www.unicode.org/charts/PDF/U2600.pdf

25)中文竖排标点:FE10-FE1F

http://www.unicode.org/charts/PDF/UFE10.pdf

26)CJK兼容符号(竖排变体、下划线、顿号):FE30-FE4F

http://www.unicode.org/charts/PDF/UFE30.pdf

你可能感兴趣的:(Java正则表达式中匹配汉字问题)