[问题] 正规表达式可以用中文字吗?

楼主: 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