python - 为什么 unicode 的中文字符串,调用 isalpha()或 isalnum()返回的是 True 呢?
PHP中文网
PHP中文网 2017-04-17 13:36:10
0
1
1477

例如:

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

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

PHP中文网
PHP中文网

认证高级PHP讲师

全部回覆(1)
洪涛

對於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)
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板