python - 如何正則字符串中的所有漢字
問題描述
這樣算嗎?121238asdf<img src='https://imgsa.baidu.com/forum/w%3D580/sign=da0493cd90ef76c6d0d2fb23ad14fdf6/e483aa4bd11373f0bddb2e73a40f4bfbf9ed04b1.jpg' height='420'>
字符串如上,類型是’str’,要正則獲得漢字。我之前使用[u4e00-u9fa5]結(jié)果獲得的還是英文,符號(hào)跟數(shù)字的list。求教導(dǎo)正確姿勢(shì)。另外說說我哪里寫錯(cuò)了..
pattern = re.compile(r’[u4E00-u9FA5]’)print pattern.findall(x[1])
這是我寫的...但是返回結(jié)果就沒有漢字,反而是除漢字外的其他字符。
問題解答
回答1:我這里假設(shè)你需要匹配的文本為s:
pattern = re.compile(ur'[u4e00-u9fa5]')print pattern.findall(s.decode(’utf8’))
這里的decode(’utf8’)是怕s的值為類似x66x77x88這樣的Unicode散列。另外,需要注意compile()中ur修飾符,u為Unicode修飾符。
PS:我是從這篇文章得到的啟發(fā)。
Update剛才看了下樓下說的,確實(shí)用Python 3就不存在輸出為Unicode散列的情況了,以下摘自此處
Unicode 字符串在Python2中,普通字符串是以8位ASCII碼進(jìn)行存儲(chǔ)的,而Unicode字符串則存儲(chǔ)為16位unicode字符串,這樣能夠表示更多的字符集。使用的語法是在字符串前面加上前綴 u。
在Python3中,所有的字符串都是Unicode字符串。
回答2:你用的是python2,uxxxx是unicode字符,匹配后得到的是字節(jié)串,print出來是各個(gè)字節(jié)值。
換python3 就沒這個(gè)問題了
相關(guān)文章:
1. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問題2. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.3. javascript - 請(qǐng)教空白文本節(jié)點(diǎn)的問題4. javascript - 用js實(shí)現(xiàn)遠(yuǎn)程js調(diào)用時(shí)出現(xiàn)時(shí)間機(jī)制問題怎樣解決?5. 刷新頁面出現(xiàn)彈框6. javascript - 前端開發(fā) 本地靜態(tài)文件頻繁修改,預(yù)覽時(shí)的緩存怎么解決?7. ios - 類似微博首頁,一張圖的時(shí)候是如何確定圖大小的?8. java報(bào)錯(cuò)Communications link failure 該如何解決?9. javascript - 怎么看網(wǎng)站用了什么技術(shù)框架?10. PC 手機(jī)兼容的 編輯器
