recherche

Maison  >  Questions et réponses  >  le corps du texte

python - 为什么 unicode 的中文字符串,调用 isalpha()或 isalnum()返回的是 True 呢?

例如:

s = u"中国"
print s.isalpha()

输出竟然为True. 这是什么原因?
那么想判断字符串是否只有字母组成出了正则,还有什么好方法?

PHP中文网PHP中文网2806 Il y a quelques jours1485

répondre à tous(1)je répondrai

  • PHP中文网

    PHP中文网2017-04-17 13:38:10

    对于unicode string,string.isalpha会根据字符串中的字符是否属于Unicode编码的LETTER区域来判断是否都由字母组成。所以得出的结果为True,不一定表示只有26个英文字母。

    正则表达式应该是最简单的方法了。

    当然你也可以:

    def isAlpha(word):
        try:
            return word.encode('ascii').isalpha()
        except UnicodeEncodeError:
            return False
    
    s = u"中国"
    isAlpha(s)
    

    répondre
    0
  • Annulerrépondre