python正則中如何匹配漢字以及encode(‘utf-8’)和decode(‘utf-8’)的互轉


正則表達式:
  [\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)

運行結果:

如果全是漢字 指定輸出某些漢字呢:

見 Unicode 中文編碼表: https://www.bejson.com/convert/unicode_chinese/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM