python正则中如何匹配汉字以及encode(‘utf-8’)和decode(‘utf-8’)的互转

时间:2023-01-04 19:11:49

正则表达式:
  [\u2E80-\u9FFF]+$ 匹配所有东亚区的语言 
  [\u4E00-\u9FFF]+$ 匹配简体和繁体 
  [\u4E00-\u9FA5]+$ 匹配简体 
  <input type="text" name="username" onkeyup="value=value.replace([\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)

运行结果:

python正则中如何匹配汉字以及encode(‘utf-8’)和decode(‘utf-8’)的互转

如果全是汉字 指定输出某些汉字呢:

见 Unicode 中文编码表: https://www.bejson.com/convert/unicode_chinese/

python正则中如何匹配汉字以及encode(‘utf-8’)和decode(‘utf-8’)的互转