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

作者: aster30 (紫苑)   2015-12-21 10:03:04
大家好
請問正規表達式中可以用中文字嗎?
例如我要判斷字串中是否有 萬,千,百,十 這四個字的其中一個
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
這樣好像就正常了?
為何會如此呢?
還是正規表達式不適用中文?
作者: Neisseria (Neisseria)   2015-12-21 10:49:00
試了一下 2.7 和 3.5 版,3.5 版的不會有這個現象
作者: CMJ0121 (請多指教!!)   2015-12-21 12:54:00
如果改成print re.search(u'[萬千百十]',str) 就正常了

Links booklink

Contact Us: admin [ a t ] ucptt.com