Python判断字符串是否纯英文(纯ASCII码字符)

        遇到了一个需求,有一对字符串数据需要使用python区分是否是纯英文,这些数据来源于不同国家的输入,区分的目的是为了大概统计英语的输入和其他语言输入的比例。

       首先想到的是python提供的函数str.isalpha():

    def judge_pure_english(keyword):
        return keyword.isalpha()

 而这样的结果并非满足需求,isalpha()只能判断一个字符串是否是一个的单词,也就是没有空格和其他符号的纯字符即满足条件:

[113211]is english[.гугал плей->False]
[113212]is english[노래->True]
[113213]is english[亲戚->True]
[113214]is english[ខ្មែ->False]
[113215]is english[євротрек драйвер->False]
[113216]is english[Sweater Weather->False]
[113217]is english[Toca led->False]
[113218]is english[электронды намаз->False]
[113219]is english[шщенок->True]
[113220]is english[графический планшет->False]
[113221]is english[готы->True]
[113222]is english[mindmars->True]
[113223]is english[че. а->False]
[113224]is english[гонки от полиции->False]
[113225]is english[футлол шоу->False]
[113226]is english[фспышка на звонок->False]
[113227]is english[фрийдом->True]
[113228]is english[фотошоп причесок->False]
[113229]is english[TouchPal SkinPack->False]
[113230]is english[голсовой яндекс->False]

 而我们需要的是判断英文,即便有空格也不要紧,于是采用另一种办法:

    def judge_pure_english(keyword):
        return all(ord(c) < 128 for c in keyword)

 这样就彻底解决问题了,速度也不慢:

[113210]is english[003 rt->True]
[113211]is english[.гугал плей->False]
[113212]is english[노래->False]
[113213]is english[亲戚->False]
[113214]is english[ខ្មែ->False]
[113215]is english[євротрек драйвер->False]
[113216]is english[Sweater Weather->True]
[113217]is english[Toca led->True]
[113218]is english[электронды намаз->False]
[113219]is english[шщенок->False]
[113220]is english[графический планшет->False]
[113221]is english[готы->False]
[113222]is english[mindmars->True]
[113223]is english[че. а->False]
[113224]is english[гонки от полиции->False]
[113225]is english[футлол шоу->False]
[113226]is english[фспышка на звонок->False]
[113227]is english[фрийдом->False]
[113228]is english[фотошоп причесок->False]
[113229]is english[TouchPal SkinPack->True]
[113230]is english[голсовой яндекс->False]

 得到了想要的结果,通过编码来判断,英文中是用的字母,数字,空格都被认为是英文,一旦出现超出这个范围的字符,就被认为是其他语言。

猜你喜欢

转载自hzy3774.iteye.com/blog/2359032