[問題] 正規表達式可以用中文字嗎?

看板Python作者 (紫苑)時間10年前 (2015/12/21 10:03), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串1/2 (看更多)
大家好 請問正規表達式中可以用中文字嗎? 例如我要判斷字串中是否有 萬,千,百,十 這四個字的其中一個 import re str = '萬' print re.search('[萬千百十]',str) 執行結果:<_sre.SRE_Match object at 0x04BF83D8> 這樣會match str = '金' print re.search('[萬千百十]',str) 執行結果:None 目前看起來很正常 但是若再換一個字 str = '台' print re.search('[萬千百十]',str) 執行結果:<_sre.SRE_Match object at 0x04BF8480> 但是'台'明明不在'萬千百十'這四個字中 如果我搜尋條件限'萬'這個字 str = '台' print re.search('[萬]',str) 執行結果:None 這樣好像就正常了? 為何會如此呢? 還是正規表達式不適用中文? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.227.79.199 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1450663387.A.73D.html

12/21 10:49, , 1F
試了一下 2.7 和 3.5 版,3.5 版的不會有這個現象
12/21 10:49, 1F

12/21 12:54, , 2F
如果改成print re.search(u'[萬千百十]',str) 就正常了
12/21 12:54, 2F
文章代碼(AID): #1MTrtRSz (Python)
文章代碼(AID): #1MTrtRSz (Python)