正则表达式:
[\u2E80-\u9FFF]+$ 匹配所有东亚区的语言 [\u4E00-\u9FFF]+$ 匹配简体和繁体 [\u4E00-\u9FA5]+$ 匹配简体 <input type="text" name="username" οnkeyup="value=value.replace([\u4E00-\u9FA5]+$)">正则表达式速查表:
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 结果:山海大学
这里面表示的是一个正则表达式语句的啦,
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 python2 # -*- 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 中文编码表: