搜尋

首頁  >  問答  >  主體

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

例如:

1

2

3

<code>s = u"中国"

print s.isalpha()

</code>

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

PHP中文网PHP中文网2810 天前1487

全部回覆(1)我來回復

  • PHP中文网

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

    對於unicode string,string.isalpha會根據字串中的字元是否屬於Unicode編碼的LETTER區域來判斷是否都由字母組成。所以得到的結果為True,不一定表示只有26個英文字母。

    正規表示式應該是最簡單的方法了。

    當然你也可以:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    <code>def isAlpha(word):

        try:

            return word.encode('ascii').isalpha()

        except UnicodeEncodeError:

            return False

     

    s = u"中国"

    isAlpha(s)

    </code>

    回覆
    0
  • 取消回覆