该unicodedata
模块具有combining
可用于确定单个字符是否为组合字符的功能。如果返回0
,则可以将该字符视为非组合字符。
import unicodedata
len(u''.join(ch for ch in u'A\u0332\u0305BC' if unicodedata.combining(ch) == 0))
或者,稍微简单一点:
sum(1 for ch in u'A\u0332\u0305BC' if unicodedata.combining(ch) == 0)