python用正則表達(dá)式提取/匹配中文漢字
python用正則表達(dá)式提取中文
Python re正則匹配中文,其實(shí)非常簡(jiǎn)單,把中文的unicode字符串轉(zhuǎn)換成utf-8格式就可以了,然后可以在re中隨意調(diào)用
unicode中中文的編碼為/u4e00-/u9fa5,因此正則表達(dá)式u”[\u4e00-\u9fa5]+”可以表示一個(gè)或者多個(gè)中文字符
>>> 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='這里是中文內(nèi)容'.decode("utf8") >>> news=re.sub(pat,newpat,s) >>> print news
這里是中文內(nèi)容:123456aa哈哈哈bbcc
python正則如何匹配中文漢字
正則表達(dá)式匹配中文漢字,在實(shí)際應(yīng)用中十分常見。
比如:爬蟲網(wǎng)頁文本提取、驗(yàn)證用戶輸入標(biāo)準(zhǔn)等。
以下面文本字符串為例,匹配出astr這個(gè)字符串中的所有漢字。
import re astr = '''aaaaa何時(shí)when 杖爾看see南雪snow,我me與梅花plum blossom兩白頭'''
下面介紹兩種方法(本文環(huán)境為python3)
一、使用Unicode編碼來匹配中文
常見的中文Unicode編碼范圍:\u4e00-\u9fa5
實(shí)現(xiàn)匹配代碼:re.findall(’[\u4e00-\u9fa5]’, astr)
import re astr = '''aaaaa何時(shí)when 杖爾看see南雪snow,我me與梅花plum blossom兩白頭''' res = re.findall('[\u4e00-\u9fa5]', astr) print(res)
匹配結(jié)果:
二、直接使用中文漢字實(shí)現(xiàn)中文匹配
沒使用過可能還真不知道,中文匹配還可以這樣
實(shí)現(xiàn)匹配代碼:re.findall(’[一-龥]’, astr)
import re astr = '''aaaaa何時(shí)when 杖爾看see南雪snow,我me與梅花plum blossom兩白頭''' res = re.findall('[一-龥]', astr) print(res)
匹配結(jié)果:
注:其實(shí)這里“一”對(duì)應(yīng)的Unicode編碼就是“\u4e00”,“龥”(yù)對(duì)應(yīng)的Unicode編碼就是“\u9fa5”。
常見非英文字符Unicode編碼范圍:
u4e00-u9fa5 (中文)
u0800-u4e00 (日文)
uac00-ud7ff(韓文)
總結(jié)
到此這篇關(guān)于python用正則表達(dá)式提取/匹配中文漢字的文章就介紹到這了,更多相關(guān)python正則提取匹配中文內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django項(xiàng)目基礎(chǔ)配置和基本使用過程解析
這篇文章主要介紹了Django項(xiàng)目基礎(chǔ)配置和基本使用過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11Django模板獲取field的verbose_name實(shí)例
這篇文章主要介紹了Django模板獲取field的verbose_name實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05Python?Pandas多種添加行列數(shù)據(jù)方法總結(jié)
在進(jìn)行數(shù)據(jù)分析時(shí)經(jīng)常需要按照一定條件創(chuàng)建新的數(shù)據(jù)列,然后進(jìn)行進(jìn)一步分析,下面這篇文章主要給大家介紹了關(guān)于Python?Pandas多種添加行列數(shù)據(jù)方法的相關(guān)資料,需要的朋友可以參考下2022-07-07使用Python統(tǒng)計(jì)代碼運(yùn)行時(shí)間的兩種方法
有時(shí)候我們需要記錄一個(gè)程序運(yùn)行的時(shí)間,下面這篇文章主要給大家介紹了關(guān)于使用Python統(tǒng)計(jì)代碼運(yùn)行時(shí)間的兩種方法,文中通過圖文以及示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12python實(shí)現(xiàn)數(shù)值積分的Simpson方法實(shí)例分析
這篇文章主要介紹了python實(shí)現(xiàn)數(shù)值積分的Simpson方法,實(shí)例分析了Python實(shí)現(xiàn)積分運(yùn)算的相關(guān)技巧,需要的朋友可以參考下2015-06-06一文搞懂Python中的進(jìn)程,線程和協(xié)程
并發(fā)編程是實(shí)現(xiàn)多任務(wù)協(xié)同處理,改善系統(tǒng)性能的方式。Python中實(shí)現(xiàn)并發(fā)編程主要依靠進(jìn)程、線程和協(xié)程,本文將通過示例詳解三者的區(qū)別,感興趣的可以了解一下2022-05-05Python文件操作中進(jìn)行字符串替換的方法(保存到新文件/當(dāng)前文件)
這篇文章主要介紹了Python文件操作中進(jìn)行字符串替換的方法(保存到新文件/當(dāng)前文件) ,本文給大家介紹兩種方法,每種方法給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06