python用正則表達式提取/匹配中文漢字

python用正則表達式提取中文

Python re正則匹配中文,其實非常簡單,把中文的unicode字符串轉換成utf-8格式就可以瞭,然後可以在re中隨意調用

unicode中中文的編碼為/u4e00-/u9fa5,因此正則表達式u”[\u4e00-\u9fa5]+”可以表示一個或者多個中文字符

>>> import re

>>> s='中文:123456aa哈哈哈bbcc'.decode('utf8')
>>> s
u'\u4e2d\u6587\uff1a123456aa\u54c8\u54c8\u54c8bbcc'
>>> print s
中文:123456aa哈哈哈bbcc

>>> re.match(u"[\u4e00-\u9fa5]+",s)
<_sre.SRE_Match object at 0xb77742c0>

>>> pat='中文'.decode("utf8")
>>> re.search(pat,s)
<_sre.SRE_Match object at 0x16a16df0>

>>> newpat='這裡是中文內容'.decode("utf8")

>>> news=re.sub(pat,newpat,s)
>>> print news

這裡是中文內容:123456aa哈哈哈bbcc

python正則如何匹配中文漢字

正則表達式匹配中文漢字,在實際應用中十分常見。

比如:爬蟲網頁文本提取、驗證用戶輸入標準等。

以下面文本字符串為例,匹配出astr這個字符串中的所有漢字。

import re
astr = '''aaaaa何時when 杖爾看see南雪snow,我me與梅花plum blossom兩白頭'''

下面介紹兩種方法(本文環境為python3)

一、使用Unicode編碼來匹配中文

常見的中文Unicode編碼范圍:\u4e00-\u9fa5

實現匹配代碼:re.findall(’[\u4e00-\u9fa5]’, astr)

import re
astr = '''aaaaa何時when 杖爾看see南雪snow,我me與梅花plum blossom兩白頭'''
res = re.findall('[\u4e00-\u9fa5]', astr)
print(res)

匹配結果:

二、直接使用中文漢字實現中文匹配

沒使用過可能還真不知道,中文匹配還可以這樣

實現匹配代碼:re.findall(’[一-龥]’, astr)

import re
astr = '''aaaaa何時when 杖爾看see南雪snow,我me與梅花plum blossom兩白頭'''
res = re.findall('[一-龥]', astr)
print(res)

匹配結果:

註:其實這裡“一”對應的Unicode編碼就是“\u4e00”,“龥”(yù)對應的Unicode編碼就是“\u9fa5”。

常見非英文字符Unicode編碼范圍:

u4e00-u9fa5 (中文)
u0800-u4e00 (日文)
uac00-ud7ff(韓文)

總結

到此這篇關於python用正則表達式提取/匹配中文漢字的文章就介紹到這瞭,更多相關python正則提取匹配中文內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: