作者aster30 (紫苑)
看板Python
标题[问题] 正规表达法可以用中文字吗?
时间Mon Dec 21 10:03:04 2015
大家好
请问正规表达式中可以用中文字吗?
例如我要判断字串中是否有 万,千,百,十 这四个字的其中一个
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://webptt.com/cn.aspx?n=bbs/Python/M.1450663387.A.73D.html
1F:→ Neisseria: 试了一下 2.7 和 3.5 版,3.5 版的不会有这个现象 12/21 10:49
2F:→ CMJ0121: 如果改成print re.search(u'[万千百十]',str) 就正常了 12/21 12:54