正则表达式:
[\u2E80-\u9FFF]+$ 匹配所有东亚区的语言
[\u4E00-\u9FFF]+$ 匹配简体和繁体
[\u4E00-\u9FA5]+$ 匹配简体
正则表达式速查表:https://www.jb51.net/shouce/jquery1.82/regexp.html
1 1 # -*- coding:utf-8 -*-
2 2
3 3 import re
4 4
5 5 '''
6 6 python 3.5版本
7 7 正则匹配中文,固定形式:\u4E00-\u9FA5
8 8 '''
9 9
10 10 words = 'study in 山海大学'
11 11 regex_str = ".*?([\u4E00-\u9FA5]+大学)"
12 12 match_obj = re.match(regex_str, words)
13 13 if match_obj:
14 14 print(match_obj.group(1))
15 15
16 16
17 17 结果:山海大学
这里面表示的是一个正则表达式语句的啦,http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html
Python添加对Unicode的支持,以Unicode表示的字符串用u’ABC’来表示。
字符串’xxx’虽然是ASCII编码,但也可以看成是UTF-8编码,而u’xxx’则只能是Unicode编码。
把u’xxx’转换为UTF-8编码的’xxx’用encode(‘utf-8’)方法。
1 >>> u'ABC'.encode('utf-8')
2 'ABC'
3 >>> u'中文'.encode('utf-8')
4 '\xe4\xb8\xad\xe6\x96\x87
反过来,把UTF-8编码表示的字符串’xxx’转换为Unicode字符串u’xxx’用decode(‘utf-8’)方法。
1 >>> 'abc'.decode('utf-8')
2 u'abc'
3 >>> '\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
4 u'\u4e2d\u6587'
5 >>> print '\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
6 中文
由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;
第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。
关于Python正则表达式匹配中文:
这里边重点用到了 r'[\u4e00-\u9fa5]+' 的正则规则,表示1到多个任意汉字。
1 import re
2 str=u"【心理箴言】现实是污浊的河流,要想接受污浊的河流而自身不被污染,我们必须成为大海。 =-=4845/.?'"
3 # py2.7,所以字符串前加u,在正则表达式前也加u即可。
4 # pattern =re.compile(u'[\u4e00-\u9fa5]')
5 pattern =re.compile(r"[\u4e00-\u9fa5]+")
6 result=pattern.findall(str)
7 result1=re.findall(pattern,str)
8 for w in result:
9 print(w)
10
11 str1='hjggj小vjjk明'
12 pat=re.compile(r'[\u4e00-\u9fa5]+')
13 result=pat.findall(str1)
14 print(result)
运行结果:
如果全是汉字 指定输出某些汉字呢:
见 Unicode 中文编码表: https://www.bejson.com/convert/unicode_chinese/