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!
推薦閱讀:
- python接口自動化之正則用例參數化的示例詳解
- Python使用re模塊實現正則表達式操作指南
- python自動化之re模塊詳解
- Python 正則表達式基礎知識點及實例
- Python知識點詳解之正則表達式語法